Registriert seit: 31. Mai 2009
1.198 Beiträge
Turbo Delphi für Win32
|
AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen
24. Okt 2012, 23:07
Wie würdest du das lösen? Den Speicher außerhalb der Funktion allozieren?
Kommt ganz drauf an, was du mit den 100 Bytes bezwecken willst.. Ein Beispiel wäre das hier
Delphi-Quellcode:
// die funktion liefert die erste datei, bei der die ersten 100 stellen aus Nullen bestehen, zurück
function searchForEmpty100(const Filenames: Array of AnsiString): Integer;
var
iFile : Integer;
Buffer : AnsiString;
hFile : THandle;
Bytes : Cardinal;
const
BUFSIZE = 100;
begin
SetLength(Buffer, BUFSIZE); // einmaliges Allozieren
for iFile := 0 to High(Filenames) do
begin
hFile := CreateFileA(pAnsiChar(Filenames[iFile]), GENERIC_READ, FILE_SHARE_READ, NIL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); // jede datei öffnen
if hFile <> INVALID_HANDLE_VALUE then
try
ReadFile(hFile, Buffer[1], BUFSIZE, Bytes, NIL);
if BUFSIZE = Bytes then
begin // genau 100 zeichen konnten eingelesen werden
if check_100bytes(buffer) then
begin
Result := iFile;
break;
end;
end;
finally
CloseHandle(hFile); // und wieder schließen, sofern geöffnet
end;
end;
end;
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
|
|
Zitat
|