Listes chainées de Strings et ChangeCurrentElement()

Archive.
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Listes chainées de Strings et ChangeCurrentElement()

Message 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 !
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message 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…
Répondre