Page 1 sur 1

Listes chainées de Strings et ChangeCurrentElement()

Publié : dim. 12/juin/2005 14:36
par Dräc
Pour une liste chainée de Strings, la commande ChangeCurrentElement() ne fonctionne pas.
On peut, par contre, utiliser SelectElement()

Code : Tout sélectionner

NewList lettre.s()
AddElement(lettre())
lettre() ="a"
AddElement(lettre())
lettre() ="b"
Index = ListIndex(lettre())
pt = @lettre()
AddElement(lettre())
lettre() ="c"

ResetList(lettre())
SelectElement(lettre(), Index)
Debug lettre()

ResetList(lettre())
ChangeCurrentElement(lettre(), pt)
Debug lettre()
Décidément, la manipulation des chaînes de caractères par accès direct en mémoire est assez délicate !

Publié : dim. 12/juin/2005 15:08
par nico
Par contre si on passe par une structure, ça fonctionne correctement:

Code : Tout sélectionner

Structure list
  chaine.s
EndStructure 

NewList lettre.list() 
AddElement(lettre()) 
lettre()\chaine ="a" 
AddElement(lettre()) 
lettre()\chaine ="b" 
Index = ListIndex(lettre()) 
pt = @lettre() 
AddElement(lettre()) 
lettre()\chaine ="c" 

ResetList(lettre()) 
SelectElement(lettre(), Index) 
Debug lettre()\chaine 

ResetList(lettre()) 
ChangeCurrentElement(lettre(), pt) 
Debug lettre()\chaine

Publié : dim. 12/juin/2005 15:29
par Dräc
Joli :)
Je suppose que c’est parce qu’une structure est d’abord un pointeur (donc un LONG) et non un string…