Page 1 sur 1

@"a"

Publié : mer. 01/mars/2006 15:35
par AWEAR
Je crois que je suis choqué à vie :

Code : Tout sélectionner

Debug peeks(@"a")
Debug peeks(@"z")
PokeS(@"a", "55555")
Debug PeekS(@"a")
Debug PeekS(@"z")
C'est normal me dira-t-on, mais je trouve ça choquant.
Je veux savoir ce qu'il y a d'écrit dans une chaîne contenant le caractère "a", et on me répond 5 fois le caractère "5", moi je trouve pas ça normal.
Bon, ok, c'est moi qui ai écrit "55555" dedans :lol:, mais bon, je demande quand même ce qu'il y a d'écrit dans la chaîne contenant le caractère "a".

Bon ben voilà, c'est pas super grave, et ça ne mérite peut-être même pas de faire le sujet d'un post, mais tant pis, c'est fait.

Publié : mer. 01/mars/2006 16:24
par Flype
Ca me parait normal ton truc.
Tu écris tranquillement dans la mémoire vive sans te soucier d'où çà écrit alors çà provoque ce qu'on appelle communément des effets de bord.
Tu auras le même problème dans tout les langages...

Par contre si tu te réserves la mémoire pour il n'y a pas de soucis :

Code : Tout sélectionner

a$ = "a"
z$ = "z"

Debug PeekS(@a$)
Debug PeekS(@z$)
PokeS(@a$, "55555")
Debug PeekS(@a$)
Debug PeekS(@z$)

Publié : mer. 01/mars/2006 16:38
par Dr. Dri
Ca peut tout de même être utile... Tu compiles ton exe, tu crypte les chaines statiques avec une méthode qui conserve la longueur (xor par exemple) et bien entendu ton exe dispose d'une routine pour les décrypter ^^.

Dri :)

Publié : mer. 01/mars/2006 16:57
par Flype
Peut etre mais çà marche si tu alloues au minimum la place nécessaire avant d'écrire comme un barbare dans la mémoire vive.

Regardes, 4 espaces de plus dans la chaine et çà fonctionne.

Code : Tout sélectionner

Debug PeekS(@"a")
Debug PeekS(@"z")
PokeS(@"a    ", "55555")
Debug PeekS(@"a")
Debug PeekS(@"z")

Publié : mer. 01/mars/2006 17:06
par Dr. Dri
Je parle bien d'un algo qui conserve la taille de la chaine, pour justement éviter le probleme évoqué dans le topic

Dri

Publié : mer. 01/mars/2006 17:12
par AWEAR
Flype a écrit :Peut etre mais çà marche si tu alloues au minimum la place nécessaire avant d'écrire comme un barbare dans la mémoire vive.

Regardes, 4 espaces de plus dans la chaine et çà fonctionne.

Code : Tout sélectionner

Debug PeekS(@"a")
Debug PeekS(@"z")
PokeS(@"a    ", "55555")
Debug PeekS(@"a")
Debug PeekS(@"z")
Comment ça j'écris comme un barbare dans la mémoire vive, moi ?
Comprends pas.. :lol:

Publié : mer. 01/mars/2006 19:24
par Patrick88
AWEAR a écrit : Comment ça j'écris comme un barbare dans la mémoire vive, moi ?
Comprends pas.. :lol:
bin comme lui , quoi... p't'êtes avec autant de finesse....

Image

:lol: :lol: :jesors: #jaune

pat

Publié : mer. 01/mars/2006 19:55
par AWEAR
Oui mais non mais ça va plus du tout là, PB il fait n'importe quoi à force d'écouter mes conneries :lol:

Code : Tout sélectionner

PokeS(@"true", PeekS(@"false"))
x$ = "true"
Debug x$
Debug "true"