C'est pas pareil...@a() est l'adresse du tableau et @a(0) est l'adresse du premier pointeur de string, non ??
Comme sur mon dessin

flaith a écrit :@variable donne l'adresse de la variable en mémoire
peekl(@variable) récupère l'information qui pointe à l'adresse de cette variable
mouais, c'est pas clair non plus....
**edit** djes a été plus rapide
Code : Tout sélectionner
Dim a.s(4)
a(0)="riri"
a(1)="fifi"
a(2)="loulou"
a(3)="donald"
Debug a(0) ; affiche "riri"
Debug @a() ; affiche l'adresse de la table qui contient les adresses des elements du tableau
Debug PeekS(@a(0)) ; affiche "riri"
Debug PeekS(@a(2)) ; affiche "loulou"
Debug PeekS(PeekL(@a())) ; affiche riri
Debug PeekS(PeekL(@a()+1*4)) ; affiche fifi
Debug PeekS(PeekL(@a()+3*4)) ; affiche donald
Code : Tout sélectionner
Debug PeekS(PeekL(@a()+3*4)) ; affiche donald
Code : Tout sélectionner
Dim a.String(10)
a(0)\s = "Kcc 0"
a(1)\s = "Kcc 1"
a(2)\s = "Kcc 2"
a(3)\s = "Kcc 3"
a(4)\s = "Kcc 4"
CallDebugger
For i = 0 To 4
Debug @a(i)
Debug @a(0) + i * SizeOf(Integer)
Debug PeekL(@a(0) + i * SizeOf(Integer))
Debug PeekS(PeekL(@a(0) + i * SizeOf(Integer)))
Debug ""
Next
Code : Tout sélectionner
003722E0 68 06 38 00 80 06 38 00 98 06 38 00 B0 06 38 00 h.8.€.8.˜.8.°.8.
003722F0 C8 06 38 00 È.8.
Code : Tout sélectionner
00380668 4B 63 63 20 30 00 4B 63 00 00 00 00 00 00 00 00 Kcc 0.Kc........
00380678 03 00 03 00 00 01 0E 00 4B 63 63 20 31 00 4B 63 ........Kcc 1.Kc
00380688 00 00 00 00 00 00 00 00 03 00 03 00 00 01 0E 00 ................
00380698 4B 63 63 20 32 00 4B 63 00 00 00 00 00 00 00 00 Kcc 2.Kc........
003806A8 03 00 03 00 00 01 0E 00 4B 63 63 20 33 00 4B 63 ........Kcc 3.Kc
003806B8 00 00 00 00 00 00 00 00 03 00 03 00 00 01 0E 00 ................
003806C8 4B 63 63 20 34 00 00 90 00 00 00 00 00 00 00 00 Kcc 4..........
003806D8 25 01 03 00 00 10 00 00 %.......
Regarde bien ce que donne le PeekL, tu verras qu'il te donne l'adresse de chaque texte de ton tableauflaith a écrit :Code : Tout sélectionner
... Debug PeekL(@a(0) + i * SizeOf(Integer)) ...
Code : Tout sélectionner
00380668 4B 63 63 20 30 00 4B 63 00 00 00 00 00 00 00 00 Kcc 0.Kc........
00380678 03 00 03 00 00 01 0E 00 4B 63 63 20 31 00 4B 63 ........Kcc 1.Kc
00380688 00 00 00 00 00 00 00 00 03 00 03 00 00 01 0E 00 ................
00380698 4B 63 63 20 32 00 4B 63 00 00 00 00 00 00 00 00 Kcc 2.Kc........
003806A8 03 00 03 00 00 01 0E 00 4B 63 63 20 33 00 4B 63 ........Kcc 3.Kc
003806B8 00 00 00 00 00 00 00 00 03 00 03 00 00 01 0E 00 ................
003806C8 4B 63 63 20 34 00 00 90 00 00 00 00 00 00 00 00 Kcc 4..........
003806D8 25 01 03 00 00 10 00 00 %.......
Bon j'ai vu que le 1er PEEK donne bien comme tu dis.Regarde bien ce que donne le PeekL, tu verras qu'il te donne l'adresse de chaque texte de ton tableau
1er PeekL donne donc 380668, etc...
Code : Tout sélectionner
Dim a.String(10)
a(0)\s = "Kcc 0"
Debug @a()
Debug @a(0)
Debug ""
Dim b.s(10)
b(0) = "Kcc 0"
Debug @b()
Debug @b(0)
Code : Tout sélectionner
PeekL(@b()) = @b(1)