Online
Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.052 Beiträge
Delphi 12 Athens
|
Re: Mit SetFilePointer zum Ende - n springen, wie?
8. Jun 2008, 18:01
erstens ist mein Englich auch nicht sonderlich gut, aber dennoch kann/versuch ich es zu lesen ... notfalls gibt's ja noch Wörterbücher und Übersetzer
Zitat:
Ich habe am Ende der Datei eine 17 platziert,
und wie hast du das gemacht?
zu OpenFile:
Zitat:
Only use this function with 16-bit versions of Windows. For newer applications, use the CreateFile function.
zu Deutsch: verwende CreateFile, da OpenFile eine veraltete Funktion ist (Windows 3.1 und Co.)
PS: dieses geht bei mir:
Delphi-Quellcode:
type TByteArr = array[0..1] of Byte;
function GetValue: TByteArr;
var
hOpn: THandle;
dwBytesRead: Cardinal;
mBuf: TByteArr;
begin
// 'ne Testdatei mit "17" am Ende erzeugen
hOpn := CreateFile('test.dat', GENERIC_WRITE, 0, nil, CREATE_ALWAYS, 0, 0);
if hOpn <> INVALID_HANDLE_VALUE then
begin
mBuf[0] := 8;
mBuf[1] := 9;
WriteFile(hOpn, mBuf, 2, dwBytesRead, nil);
mBuf[0] := 1;
mBuf[1] := 7;
WriteFile(hOpn, mBuf, 2, dwBytesRead, nil);
CloseHandle(hOpn);
end;
mBuf[0] := 0; // nur damit nicht noch die 17 vom Speichern drinsteht,
mBuf[1] := 0; // da beim Lesen dwBytesRead nicht geprüft wird.
// Auslesen
hOpn := CreateFile('test.dat', GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
if hOpn <> INVALID_HANDLE_VALUE then
begin
SetFilePointer(hOpn, -2, nil, FILE_END);
ReadFile(hOpn, mBuf, 2, dwBytesRead, nil);
showmessage(inttostr(mBuf[0]) + inttostr(mBuf[1]));
result := mBuf;
CloseHandle(hOpn);
end;
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
|
|
Zitat
|