Pb avec pointeur

moffer Messages postés 49 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 2 juin 2004 - 1 août 2003 à 01:33
moffer Messages postés 49 Date d'inscription lundi 23 juin 2003 Statut Membre Derniè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

2 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
1 août 2003 à 18:28
Pourquoi se compliquer la vie ?
La solution :
  Buf[1] := 'a'; //ou Buf[1] := Chr(97) si tu préfères

May Delphi be with you
0
moffer Messages postés 49 Date d'inscription lundi 23 juin 2003 Statut Membre Derniè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.+
0
Rejoignez-nous