π
<-
Chat plein-écran
[^]

Réactions d'oxydoréduction (Lua)

Pour TI-Nspire OS 3.0 ou ultérieur.

Re: Réactions d'oxydoréduction (Lua)

Message non lude AnToX98 » 09 Juin 2014, 15:32

Len string.byte renvoie 226 pour tous les caractères "puissance"... Comment je fais alors ?
Avatar de l’utilisateur
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 75.5%
 
Messages: 1022
Images: 15
Inscription: 19 Mai 2013, 16:54
Localisation: Paris, France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere S

Re: Réactions d'oxydoréduction (Lua)

Message non lude Extra44 » 09 Juin 2014, 15:34

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 !
Avatar de l’utilisateur
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 58.4%
 
Messages: 591
Images: 1
Inscription: 20 Jan 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: S.I.

Re: Réactions d'oxydoréduction (Lua)

Message non lude Adriweb » 09 Juin 2014, 16:00

Je suis en train de faire un code qui transforme ton truc comme tu veux, la.

(FYI, tu connais string.usub ? :P)
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Réactions d'oxydoréduction (Lua)

Message non lude AnToX98 » 09 Juin 2014, 16:15

Ce serait pas gsub ? Merci pour ton code :D
Avatar de l’utilisateur
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 75.5%
 
Messages: 1022
Images: 15
Inscription: 19 Mai 2013, 16:54
Localisation: Paris, France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere S

Re: Réactions d'oxydoréduction (Lua)

Message non lude Levak » 09 Juin 2014, 18:23

AnToX98 a écrit:Ce serait pas gsub ?

Non, gsub, c'est global substring replace. usub, c'est unicode substring.
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
Avatar de l’utilisateur
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 98.9%
 
Messages: 6414
Images: 22
Inscription: 27 Nov 2008, 00:00
Localisation: 0x1AACC355
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BAC+5: Epita (ING3)

Re: Réactions d'oxydoréduction (Lua)

Message non lude Adriweb » 09 Juin 2014, 23:53

Ah oui donc déja, on a passé pas mal de temps a trouver un moyen correct de faire un string.ulen :P

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 :P

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é :P
Peut être demain ^^

(un string.gsub utf8 aurait été fort pratique pour faire ca rapidement...)
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Réactions d'oxydoréduction (Lua)

Message non lude AnToX98 » 10 Juin 2014, 07:55

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.
Avatar de l’utilisateur
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 75.5%
 
Messages: 1022
Images: 15
Inscription: 19 Mai 2013, 16:54
Localisation: Paris, France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere S

Re: Réactions d'oxydoréduction (Lua)

Message non lude Extra44 » 10 Juin 2014, 20:12

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 ... ;)
Avatar de l’utilisateur
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 58.4%
 
Messages: 591
Images: 1
Inscription: 20 Jan 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: S.I.

Re: Réactions d'oxydoréduction (Lua)

Message non lude NspireCas » 10 Juin 2014, 20:16

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 ?
Avatar de l’utilisateur
NspireCasModo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 6.4%
 
Messages: 1304
Images: 7
Inscription: 04 Oct 2012, 20:44
Localisation: Paris
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -

Re: Réactions d'oxydoréduction (Lua)

Message non lude Adriweb » 10 Juin 2014, 20:25

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 :

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....)
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

PrécédenteSuivante

Retourner vers Nspire-Lua

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 44 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1497 utilisateurs:
>1468 invités
>23 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)