AW: Memory leak durch funktion readln
Zitat:
|
AW: Memory leak durch funktion readln
Zitat:
Gerade bei 2GB große Files... Wobei Du natürlich NICHT "Byteweise" lesen solltest sondern: Sondern eher eine Lesepuffer von 16MB oder größer nehmen... Und dann die 16MB direkt in einem Rutsch mit einen Blockread lesen... In Memory dann mit einem Zeiger durchlaufen und entsprechend per Blockwrite wegschreiben... NIX ist schneller auch nicht der FileStream... :stupid: Der nutz nämlich genau die gleichen Routinen intern wie der Blockread... Nur mit mehr Overhead! Mavarik |
AW: Memory leak durch funktion readln
Zitat:
kann man da denn noch gut nahc zeilen unterscheiden? ich gehe mal davon aus, dass es schwierig sein wird 16 mb auszulesen ohne dabei eine zeile zu zerschneiden, denn meine zeilen stellen zusammenhängede datensätze dar:/ |
AW: Memory leak durch funktion readln
Speichermäßig ist das doch am einfachsten mit zeilenweiser String-Bearbeitung, oder?
Delphi-Quellcode:
procedure Die_Schleife_Stirbt_Nicht(Von,Nach: string);
var T1, T2: TextFile; Zeile: string; begin AssignFile(T1,Von); // bzw. Assign(T1,Von); in D6 Reset(t1); AssignFile(T2,Nach); Rewrite(T2); while not EOF(T1) do begin ReadLn(T1,Zeile); // Zeileninhalt bearbeiten WriteLn(T2,Zeile); end; CloseFile(T1); // bzw. Close(T1) in D6 CloseFile(T2); end; |
AW: Memory leak durch funktion readln
Zitat:
|
AW: Memory leak durch funktion readln
Zitat:
Unter Delphi 6 ist ein String immer ein Shortstring... Oder verwechsele ich da gerade etwas? Ist zu lange her... Bist Du sicher, das Deine Zeilen in den Textdateien kürzer als 255 Zeichen sind? Mavarik |
AW: Memory leak durch funktion readln
Du bist anscheinend bei Delphi 1 stehengeblieben, in Delphi 2 bis 2007 ist ein String ein AnsiString.
|
AW: Memory leak durch funktion readln
Zitat:
|
AW: Memory leak durch funktion readln
Zitat:
|
AW: Memory leak durch funktion readln
Zitat:
Was soll z.B. das...wenn angenommen "Zeile" eine Stringvariable ist:
Delphi-Quellcode:
//BG2010: Wenn Zeile mit Hochkomma beginnt, dann Einlesevorgang abbrechen...
if zeile[0] = '''' then break; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz