WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 5 déc. 2007 à 15:59
Bonjour
C'est normal que les données soient écrites dans cet ordre !!! Si tu veux l'ordre inverse il faudrait que ta variable soit égale à $05000000. Donc attention, si tu modifies l'écriture de ton entier, il faudra également modifier sa relecture !! Une ecriture dans le sens que tu souhaites ne correspondra plus au stockage de la valeur 5 mais de la valeur 83886080.
Si toutefois tu voulais tout de même inverser cet ordre, alors avant l'ecriture il faut rajouter la ligne :
Aint := Swap(Word(AInt and $FFFF)) shl 16 + Swap(Word(AInt shr 16)) ;
Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 6 déc. 2007 à 01:48
procedure GlobalSwap(const src; out dest; const size: integer);
var pI,pO: ^byte;
n : integer;
begin
pI := @src;
pO := @dest;
inc(pI, Size-1);
for n := 0 to size-1 do
begin
pO^ := pI^;
dec(pI);
inc(pO);
end;
end;
procedure ......;
var
Value : integer;
Data : integer;
begin
Value := $11223344;
GlobalSwap(Value, Data, 4);
with TFileStream.Create(......,fmcreate) do
try
WriteBuffer(Data, 4);
finally
Free;
end;
end;