Réactions d'oxydoréduction (Lua)
Re: Réactions d'oxydoréduction (Lua)
Len string.byte renvoie 226 pour tous les caractères "puissance"... Comment je fais alors ?
Mes programmes de Maths Equation cartésienne droiteEtude de dérivé en un point Inéquations du second degré Equations bicarrées Statistique facile ! (1ère/2nde) | Divers Liste complète de mes programmesApprends à programmer en lua TI-planet sur facebook : |
-
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)- Messages: 1022
- Images: 15
- Inscription: 19 Mai 2013, 16:54
- Localisation: Paris, France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: 1ere S
Re: Réactions d'oxydoréduction (Lua)
Ce serait pas de l'unicode, sur 16bits=2 octets !!
Du coup les caractères puissances commenceraient par 266, et auraient un autre byte ...
essaye de retrouver le 2e byte du caractère !
Du coup les caractères puissances commenceraient par 266, et auraient un autre byte ...
essaye de retrouver le 2e byte du caractère !
-
Extra44Premium
Niveau 11: LV (Légende Vivante)- Messages: 591
- Images: 1
- Inscription: 20 Jan 2011, 00:00
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: S.I.
Re: Réactions d'oxydoréduction (Lua)
Je suis en train de faire un code qui transforme ton truc comme tu veux, la.
(FYI, tu connais string.usub ? )
(FYI, tu connais string.usub ? )
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14617
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Re: Réactions d'oxydoréduction (Lua)
Ce serait pas gsub ? Merci pour ton code
Mes programmes de Maths Equation cartésienne droiteEtude de dérivé en un point Inéquations du second degré Equations bicarrées Statistique facile ! (1ère/2nde) | Divers Liste complète de mes programmesApprends à programmer en lua TI-planet sur facebook : |
-
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)- Messages: 1022
- Images: 15
- Inscription: 19 Mai 2013, 16:54
- Localisation: Paris, France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: 1ere S
Re: Réactions d'oxydoréduction (Lua)
AnToX98 a écrit:Ce serait pas gsub ?
Non, gsub, c'est global substring replace. usub, c'est unicode substring.
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6414
- Images: 22
- Inscription: 27 Nov 2008, 00:00
- Localisation: 0x1AACC355
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: BAC+5: Epita (ING3)
Re: Réactions d'oxydoréduction (Lua)
Ah oui donc déja, on a passé pas mal de temps a trouver un moyen correct de faire un string.ulen
Il s'avère qu'il y a eu un malin plus malin que nous (levak, jim et moi), et qui a fait un truc plutôt joli ( cf https://github.com/Pogs/lua-utf8-simple ... simple.lua ) :
Ca peut te servir ou pas, mais bon, voila
Sinon, voici un bout de code pour remplacer les caractères par d'autres, je pense que ca peut déjà t'aider.
Bien sûr, faudra par exemple traiter les exposants séparément des indices...
Je suppose que tu peux reprendre ton idée de string.reverse ?
Pas eu le temps de faire un code complet pour ce que tu veux (remplacement), désolé
Peut être demain ^^
(un string.gsub utf8 aurait été fort pratique pour faire ca rapidement...)
Il s'avère qu'il y a eu un malin plus malin que nous (levak, jim et moi), et qui a fait un truc plutôt joli ( cf https://github.com/Pogs/lua-utf8-simple ... simple.lua ) :
- Code: Tout sélectionner
function string.ulen(s)
-- count the number of non-continuing bytes
return select(2, s:gsub('[^\128-\193]', ''))
end
Ca peut te servir ou pas, mais bon, voila
Sinon, voici un bout de code pour remplacer les caractères par d'autres, je pense que ca peut déjà t'aider.
- Code: Tout sélectionner
function string.ulen(s)
-- count the number of non-continuing bytes
return select(2, s:gsub('[^\128-\193]', ''))
end
print("------------")
local replacedChars = {
["¹"]=1,["²"]=2,["³"]=3,["⁴"]=4,["⁵"]=5,["⁶"]=6,["⁷"]=7,["⁸"]=8,["⁹"]=9,["⁰"]=0,
["₁"]=1,["₂"]=2,["₃"]=3,["₄"]=4,["₅"]=5,["₆"]=6,["₇"]=7,["₈"]=8,["₉"]=9,["₀"]=0,
["⁻"]="-",["⁺"]="+" }
setmetatable(replacedChars, {__index = function(t, char) return char end})
local str = "MnO₄²⁻"
local newstr = ""
for i=1, str:ulen() do
local sub = str:usub(i,i)
newstr = newstr .. replacedChars[sub]
end
print(newstr)
Bien sûr, faudra par exemple traiter les exposants séparément des indices...
Je suppose que tu peux reprendre ton idée de string.reverse ?
Pas eu le temps de faire un code complet pour ce que tu veux (remplacement), désolé
Peut être demain ^^
(un string.gsub utf8 aurait été fort pratique pour faire ca rapidement...)
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14617
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Re: Réactions d'oxydoréduction (Lua)
Merci beaucoup
Je sais que gsub est plus efficace mais après pour remplacer les exposants avec le + et - inversés ça me paraît compliqué...
Ou alors je pourrais carrément inverser l'exposant et le signe après l'input.
Je sais que gsub est plus efficace mais après pour remplacer les exposants avec le + et - inversés ça me paraît compliqué...
Ou alors je pourrais carrément inverser l'exposant et le signe après l'input.
Mes programmes de Maths Equation cartésienne droiteEtude de dérivé en un point Inéquations du second degré Equations bicarrées Statistique facile ! (1ère/2nde) | Divers Liste complète de mes programmesApprends à programmer en lua TI-planet sur facebook : |
-
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)- Messages: 1022
- Images: 15
- Inscription: 19 Mai 2013, 16:54
- Localisation: Paris, France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: 1ere S
Re: Réactions d'oxydoréduction (Lua)
Avec gsub, tu peux facilement remplacer toutes les occurrences "12" par "21", et ce quelque soit les caractères : donc si tu arrive à choper (prendre) les petits chiffres de puissance et le caractère de puissance :
Par exemple : dans le logiciel sur pc (mac ?) : prend une fenetre editeur mathematiq, insere le(s) caractère , puis copie le, et colle dans le code lua dans la ligne gsub de recherche/remplacement et le tour est joué !
L'éditeur de script gère sans problème les caractères que gère la nspire, et le lua (aussi)
Je sais pas si j'ai été clair ...
Par exemple : dans le logiciel sur pc (mac ?) : prend une fenetre editeur mathematiq, insere le(s) caractère , puis copie le, et colle dans le code lua dans la ligne gsub de recherche/remplacement et le tour est joué !
L'éditeur de script gère sans problème les caractères que gère la nspire, et le lua (aussi)
Je sais pas si j'ai été clair ...
-
Extra44Premium
Niveau 11: LV (Légende Vivante)- Messages: 591
- Images: 1
- Inscription: 20 Jan 2011, 00:00
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: S.I.
Re: Réactions d'oxydoréduction (Lua)
AnToX98, tu penses que tu vas y arriver ? Y a un bac de physique demain et après-demain, ça va être un peu trop juste pour toi ?
-
NspireCasModo
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 1304
- Images: 7
- Inscription: 04 Oct 2012, 20:44
- Localisation: Paris
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: -
Re: Réactions d'oxydoréduction (Lua)
Ah oui, solution de gros bourrin si ça te prends la tête et si tu es en manque de temps :
tu hard-codes tous les remplacements possible jusqu'à 15, et basta :
Oui, c'est moche, mais bon, si ca te permet de finir à temps... ^^
(edit : commence à l'envers (par "15-" si tu vas jusqu'a 15), sinon, tu risque de remplacer que le chiffre des unités....)
tu hard-codes tous les remplacements possible jusqu'à 15, et basta :
- Code: Tout sélectionner
local str = "MnO₄²⁻"
local newstr = ""
newstr = str:gsub("²⁻", "^(-2)"):gsub("³⁻", "^(-3)"):gsub("⁴⁻", "^(-4)")
-- etc.
print(newstr)
Oui, c'est moche, mais bon, si ca te permet de finir à temps... ^^
(edit : commence à l'envers (par "15-" si tu vas jusqu'a 15), sinon, tu risque de remplacer que le chiffre des unités....)
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14617
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 44 invités