![]() |
AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen
Zitat:
Zitat:
|
AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen
Ohne Kopieren in Zwischenpuffer:
Delphi-Quellcode:
function GetStartBlockFromTextFile(const F: string; const X: Integer): AnsiString;
// holt die ersten X Zeichen aus der Text-Datei F var SR : TStreamReader; len : Integer; begin SR := TStreamReader.Create(F); try SetLength(Result, X); len := SR.ReadBlock(Result, 0, X); // evtl. in len < X, dann wird der String entsprechend verkürzt SetLength(Result, len); finally SR.Free; end; end; |
AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen
Zitat:
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; |
AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen
Zitat:
|
AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen
Zitat:
z.B. ![]() Oder, wenn die internen Daten bitkompatibel sind, dann "kopieren" (Move) |
AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen
Zitat:
|
AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen
Hast du dir meine Variante angeschaut?
|
AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen
was Shima meinte war wohl
Delphi-Quellcode:
Ich hatte eine identische Antwort fertig, habe sie aber nicht abgeschickt, da es bei mir nicht zuverlässig zum laufen kam, war abhängig vom Encoding der Datei und seltsamerweise auch vom Inhalt, irgendetwas an TStreamreader ist da etwas Voodoo.
len := SR.ReadBlock(@Result[1], 0, X);
Willst Du einen Binärvergleich fahren oder geht es nur um Textdateien (in einheitlicher Codierung) ? |
AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen
Zitat:
|
AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen
OK Leute...
OLD SCHOOL
Delphi-Quellcode:
Würde sagen NIX ist schneller!
Procedure Schnell;
Var Buffer : array[0..99] of byte; F : file; gelesen : Integer; begin AssignFile(F,'Cool.txt'); reset(F,1); Blockread(F,Buffer[0]),100,gelesen); Closefile(F); if gelesen = 100 then begin bla; end; end; Mavarik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz