![]() |
AW: Große Textdateien verarbeiten
Nja, ich hab ja schon was rausgerückt...
Das eine könnte man über einen virtuellen Tree anzeigen und zeilenweise bearbeiten und das Andere könnte Teile in einem Memo anzeigen und bearbeiten. Nja, wie schon mehrmals gesagt wurde, läd man sowas einfach nicht komplett und versucht es auch niemals komplett anzuzeigen, auch wenn es theoretisch mit Delphi XE2 möglich sein sollte. |
AW: Große Textdateien verarbeiten
Zitat:
|
AW: Große Textdateien verarbeiten
OT
Zitat:
Es gab ein 5.25" Floppy Laufwerk mit über 1.2 MB (!) Speicherplatz. Das Laufwerk arbeitete mit unterschiedlichen Umdrehungsgeschwindigkeiten und packte damit außen auf die Floppy mehr Sektoren als innen. Beim Scrollen in Word-Star konnte man dann hören, wenn Text nachgeladen wurde und ob der Text eher innen oder außen gespeichert wurde... Es kann eigentlich kein MS DOS gewesen sein. Ich glaub es gab zu der Zeit die ersten AT Rechner. Normale MS DOS Rechner mit 5.25" Floppies konnten 360 KB darauf speichern. Ich glaub, nach den Rechnern muss ich noch mal im Netz suchen. |
AW: Große Textdateien verarbeiten
Moin 187,
bei derart grossen Dateien wirst Du um den dynamischen Zugriff auf die gerade angezeigten Daten (mit einem Stück davor und danach) spätestens ab 2GB (unter besonderen Umständen auch 3GB) nicht herumkommen, denn sonst geht Dir der Speicher aus. Auch und gerade, wenn in der Datei noch gesucht/editiert werden soll, werden sich grosse Datenmengen im Speicher als erhebliche Bremse auswirken. Lade einfach mal eine 500MB grosse Datei ins Notepad und versuch' mal eine Zeile einzufügen. Dann kannst Du, meiner Erfahrung nach, bequem Kaffee kochen gehen bevor sich etwas rührt. :wink: Als Stichwort für den Zugriff auf grosse Dateien kämen eventuell auch Memory Mapped Files in Frage (MMF) (zumindest wollte ich mir die mal für den genannten Zweck demnächst ansehen :wink:) |
AW: Große Textdateien verarbeiten
Ich hab mir einfach mal eine Datenbank zusammengebastelt weil es noch eine am einfachsten für mich realisierbare Variante wäre.
Speicherbedarf hab ich sogut wie garkein...Jedoch brauch ich für 500000 Zeile (7 mb) immernoch 2:30min :/ (Das liegt vielleicht daran weil ich für jede Zeile das Query ausführe, vielleicht kann man das noch optimieren.
Delphi-Quellcode:
StartTime:=Time;
for i:=1 to Form1.StringGrid1.RowCount do begin Path:=Form1.StringGrid1.Cells[1,i]; if FileExists(Path) then begin AssignFile(F,Path); Reset(F); while not eof(F) do begin Readln(F,tmp); IBQuery1.Close; IBQuery1.SQL.Clear; IBQuery1.SQL.Add('INSERT INTO LINES(MYFIELD) VALUES('''+tmp+''');'); IBQuery1.Open; end; CloseFile(F); end; end; EndTime:=Time; ShowMessage('Time: '+TimeToStr(EndTime-StartTime)); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 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 by Thomas Breitkreuz