Registriert seit: 3. Sep 2004
4.629 Beiträge
Delphi 10.2 Tokyo Starter
|
Re: Einstellungen direkt aus der Programmdatei lesen
16. Nov 2006, 14:17
Okey, da hätte ich selber draufkommen können War nur ein dummer Fehler, hab ich grade gemerkt. Also so gehts:
Delphi-Quellcode:
var
szReadData: Array[0..16] of Char;
szData: PChar;
iBytesRead: DWORD;
fhSource: THandle;
FSize: int64;
CfgFile: TStringList;
begin
//Dateigröße ermitteln
szReadData := '';
iBytesRead := 0;
fhSource := INVALID_HANDLE_VALUE;
fhSource := CreateFile(PChar(ParamStr(0)),
GENERIC_READ,
FILE_SHARE_READ,
nil,
OPEN_EXISTING,
0,
0);
if (fhSource <> INVALID_HANDLE_VALUE) then
begin
SetFilePointer(fhSource, -15, nil, FILE_END);
ReadFile(fhSource, szReadData, 15, iBytesRead, nil);
CloseHandle(fhSource);
if (iBytesRead = 15) then
begin
showmessage(Trim(Copy(szReadData, 1, 15)));
try
FSize := StrToInt(Trim(Copy(szReadData, 1, 15)));
except
Exit;
end;
end;
end
else
begin
Exit;
end;
//Datei auslesen
GetMem(szData, FSize);
iBytesRead := 0;
fhSource := INVALID_HANDLE_VALUE;
fhSource := CreateFile(PChar(ParamStr(0)),
GENERIC_READ,
FILE_SHARE_READ,
nil,
OPEN_EXISTING,
0,
0);
if (fhSource <> INVALID_HANDLE_VALUE) then
begin
SetFilePointer(fhSource, -(FSize + 15), nil, FILE_END);
ReadFile(fhSource, szData^, FSize, iBytesRead, nil);
CloseHandle(fhSource);
if (iBytesRead = FSize) then
begin
CfgFile := TStringList.Create;
try;
CfgFile.DelimitedText := Copy(szData, 1, FSize);
showmessage(cfgfile.text);
finally
CfgFile.Free;
end;
end;
end;
end;
Florian
|
|
Zitat
|