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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| var
bf: File;
buffer: array of byte;
s: AnsiString;
w: integer;
p1, p2: pByte;
s1, s2, s3: AnsiString;
K: Integer;
begin
AssignFile(bf, 'testBF.bin');
Rewrite(bf, 24);
s := '12345678901234567890ABCD';
SetLength(buffer, Length(s));
p1 := pByte(integer(@Buffer[0])); // synonyme de // p1 := @buffer[0];
Move(s[1], p1^, Length(buffer)); // p1^ c'est le buffer non typé attendu par Move
BlockWrite(bf, p1^, 1, w); // p1^ c'est le buffer non typé attendu par BlockWrite
showmessage(inttostr(w));
CloseFile(bf);
//--
AssignFile(bf, 'testBF.bin');
reset(bf, 24);
Seek(bf, 1);
s1 := #13#10;
s2 := 'KlausGunther';
s3 := '0123456789';
SetLength(buffer, Length(s));
p1 := pByte(integer(@Buffer[0]));
p2 := p1;
Move(s1[1], p2^, Length(s1));
p2 := pByte(integer(p2) + Length(s1));
Move(s2[1], p2^, Length(s2));
p2 := pByte(integer(p2) + Length(s2));
Move(s3[1], p2^, Length(s3));
// Pas besoin de déplacer p2
BlockWrite(bf, p1^, 1, w);
// showmessage(inttostr(w));
CloseFile(bf);
for K := 3 to 10 do
begin
//--
AssignFile(bf, 'testBF.bin');
reset(bf, 24);
Seek(bf, K - 1);
s1 := #13#10;
s2 := Format('Ligne N°%d ..', [K]);
s3 := Format('Fin de N°%d', [K]);
SetLength(buffer, Length(s));
p1 := pByte(integer(@Buffer[0]));
p2 := p1;
Move(s1[1], p2^, Length(s1));
p2 := pByte(integer(p2) + Length(s1));
Move(s2[1], p2^, Length(s2));
p2 := pByte(integer(p2) + Length(s2));
Move(s3[1], p2^, Length(s3));
// Pas besoin de déplacer p2
BlockWrite(bf, p1^, 1, w);
CloseFile(bf);
end;
end; |
Partager