1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| procedure WriteStringAtEnd(const FileName: string; const NewValue: string);
var
FileHandle: THandle;
AmtTransferred: Cardinal;
StartPosition: Int64;
begin
FileHandle := CreateFile(PChar(FileName), GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
try
Int64Rec(StartPosition).Lo := GetFileSize(FileHandle, @Int64Rec(StartPosition).Hi);
Dec(StartPosition); // La Dernière Position
Dec(StartPosition, Length(NewValue)); // La Position
SetFilePointer(FileHandle, Int64Rec(StartPosition).Lo, @Int64Rec(StartPosition).Hi, FILE_BEGIN);
WriteFile(FileHandle, NewValue[1], Length(NewValue), AmtTransferred, nil);
finally
CloseHandle(FileHandle);
end;
end; |
Partager