moffer
Messages postés49Date d'inscriptionlundi 23 juin 2003StatutMembreDernière intervention 2 juin 2004
-
1 août 2003 à 01:33
moffer
Messages postés49Date d'inscriptionlundi 23 juin 2003StatutMembreDernière intervention 2 juin 2004
-
1 août 2003 à 19:07
voila je suis un peu nouveau sur delphi et je me demande pourquoi ce code ne fonctionne pas
procedure TForm1.Button1Click(Sender: TObject);
var
Buf: String;
PBuf: PByte;
begin
Buf := 'ABCDEF';
PBuf := @Buf[1];
(PBuf)^ := 97; // ca marche ..
Inc(PBuf);
(PBuf)^ := 97; // ca marche ..
(PBuf + 1)^ := 97;
// ici erreur, et en essayant par hasard avec
// un PBuf de type PChar aucun problème
//.... je voudrais utiliser un PByte.
ShowMessage(Buf);
Application.Terminate;
end;
je cherche une solution a ce probleme; aidez moi
merci
moffer
Messages postés49Date d'inscriptionlundi 23 juin 2003StatutMembreDernière intervention 2 juin 2004 1 août 2003 à 19:07
Car se code est situé dans une boucle de ma fonction de cryptage. Je voudrais utiliser les pointeurs pour éviter la vérification de type et optimiser mon code.
Mais je n'arrive à modifier l'adresse du pointeur que si le type sur lequel il pointe , une chaine string avec un pointeur PChar et non un pointeur PByte. De plus j'utilise un PByte car il effectue un xor logique sur des codes de caratères. En évitant le passsage de Chr(Ord(Buf[i]) xor Ord(Pass[j])) je gagne beaucoup de temps. Mais je vois que tu n'a pas vraiment de solution à me proposer.
Merci quand meme.+