π
<-

Réactions d'oxydoréduction (Lua)

Pour TI-Nspire OS 3.0 ou ultérieur.

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

Unread postby AnToX98 » 09 Jun 2014, 15:32

Len string.byte renvoie 226 pour tous les caractères "puissance"... Comment je fais alors ?
User avatar
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 75.5%
 
Posts: 1022
Images: 15
Joined: 19 May 2013, 16:54
Location: Paris, France
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

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

Unread postby Extra44 » 09 Jun 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 !
User avatar
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 58.4%
 
Posts: 591
Images: 1
Joined: 20 Jan 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: S.I.

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

Unread postby Adriweb » 09 Jun 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)

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby AnToX98 » 09 Jun 2014, 16:15

Ce serait pas gsub ? Merci pour ton code :D
User avatar
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 75.5%
 
Posts: 1022
Images: 15
Joined: 19 May 2013, 16:54
Location: Paris, France
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

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

Unread postby Levak » 09 Jun 2014, 18:23

AnToX98 wrote: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
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

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

Unread postby Adriweb » 09 Jun 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: Select all
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: Select all
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...)

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby AnToX98 » 10 Jun 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.
User avatar
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 75.5%
 
Posts: 1022
Images: 15
Joined: 19 May 2013, 16:54
Location: Paris, France
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

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

Unread postby Extra44 » 10 Jun 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 ... ;)
User avatar
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 58.4%
 
Posts: 591
Images: 1
Joined: 20 Jan 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: S.I.

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

Unread postby NspireCas » 10 Jun 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 ?
User avatar
NspireCasModo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 6.4%
 
Posts: 1304
Images: 7
Joined: 04 Oct 2012, 20:44
Location: Paris
Gender: Male
Calculator(s):
MyCalcs profile
Class: -

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

Unread postby Adriweb » 10 Jun 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: Select all
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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

PreviousNext

Return to Nspire-Lua

Who is online

Users browsing this forum: ClaudeBot [spider] and 1 guest

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2065 utilisateurs:
>2050 invités
>8 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)