[v4 Beta 10] MemoryStringLength() et string [Résolu]

Archive.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

[v4 Beta 10] MemoryStringLength() et string [Résolu]

Message par Jacobus »

Je n'arrive pas à faire passer une chaîne$ en paramètre, quel que soit le mode de compile ou d'option le résultat est le même.
Bad parameter type. Il veut absolument un number à la place d'un string.

Code : Tout sélectionner

chaine1$ = "Blabla"
  Buffer  = AllocateMemory(#MAXWORD)
  PokeS(*Buffer,chaine1$)  
  chaine2$ = "ReBla" 
  If chaine2$ <> MD5Fingerprint(*Buffer,MemoryStringLength(chaine1$,#PB_Ascii)
  ;If chaine2$ <> MemoryStringLength(chaine1$,#PB_UTF8)
  ;If chaine2$ <> MemoryStringLength(chaine1$,#PB_Unicode)
    Debug "different"
  Else 
    Debug "c'est incroyable ça!" 
  EndIf 
C'est bien MemoryStringLength() qui veut rien savoir et ce malgré ce qui est dit dans le Readme.html ou la Doc :roll:

A moins d'une erreur de ma part, ça bug. Pourriez vous confirmer dans un sens ou dans l'autre? merci.
Dernière modification par Jacobus le jeu. 13/avr./2006 4:01, modifié 1 fois.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

C'est pas un bug - c'est bien une erreur de ta part.

tu as Len(Chaine$) pour çà.

car MemoryStringLength(*Chaine,flag) prend un pointeur sur une chaîne de caractères, ce qui est très différent.

et puis tu as aussi oublié le '*' devant Buffer = AllocateMemory()

donc en gros ton example devrait plutot ressembler à çà :

Code : Tout sélectionner

chaine1$ = "Blabla" 
  *Buffer  = AllocateMemory(#MAXWORD) 
  PokeS(*Buffer,chaine1$)  
  chaine2$ = "ReBla" 
  If chaine2$ <> MD5Fingerprint(*Buffer,MemoryStringLength(*Buffer,#PB_Ascii))
  ;If chaine2$ <> MemoryStringLength(chaine1$,#PB_UTF8) 
  ;If chaine2$ <> MemoryStringLength(chaine1$,#PB_Unicode) 
    Debug "different" 
  Else 
    Debug "c'est incroyable ça!" 
  EndIf
Image
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

:? Ok, on apprend tous les jours. Merci pour la correction.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

ya pas de mal :wink:
Image
Répondre