bonjour a tous ,
attention je suis débutant sans expérience , ne vous offusquer pas par mes réponses
logiciel Delphi 7
sauriez vous me dire comment je peut retourné une valeur hexadécimal par poids
exemple edit7.text' 0D8000' ; en edit8.text 00800D;
voici le code que j'ai tenter d'utilisé mais je retourne mes valeur
0D8000 en 0008D0 ?
ai fait de nombreuse recherche sans succès, il est vrai que je ne sais pas trop dans quel direction chercher
je fait donc appel a votre savoir
cordialement
voici ce que j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 //-------------------------------------------------------------------------------------pour la fonction je n'ai pas trouver juste une procédure procedure ReverseBytes(Source, Dest: Pointer; Size: Integer); var BA: TByteArray; s: string; begin // Length(BA, 4); // ici message d'erreur // BA[0] := 65; // // BA[1] := $41; // // BA[2] := 1000001; // ceux la ne fonctionne pas // BA[0] := ord('A'); // s := ByteArrayToHexString(BA); // 41414141 // s := ByteArrayToHexString(BA ,' '); // 41 41 41 41// je devrai les espacé mais cela ne marche pas et peut être pas besoin nom plus ? Dest := PByte( NativeUInt(Dest) + Size - 1); while (Size > 0) do begin PByte(Dest)^ := PByte(Source)^; // Inc(PByte(Source)); // ici je retourne bien mais tout les chiffre et lettre hexadécimal Dec(PByte(Dest)); // 0D8000 en 0008D0 ? au lieu de """ 00 80 0d "" ou """ 00800D """ Dec(Size); // end; end; //--------------------------------------------------------------------------------------- ici un speedbutton de test procedure TForm1.SpeedButton1Click(Sender: TObject); var s: AnsiString; P: Pointer; begin s := #0 + edit7.Text; GetMem(P, Length(s)); ReverseBytes(Pointer(s),P, Length(s)); // je pense qu'il me manque le contrôle des poids par 2 caractère ShowMessage(PAnsiChar(p)); // esrevertset FreeMem(P); end;
Partager