Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Große Textdateien verarbeiten (https://www.delphipraxis.net/159661-grosse-textdateien-verarbeiten.html)

DeddyH 7. Apr 2011 11:06

AW: Große Textdateien verarbeiten
 
Memo.Lines.BeginUpdate und Memo.Lines.EndUpdate benutzt Du bereits?

-187- 7. Apr 2011 11:15

AW: Große Textdateien verarbeiten
 
Hmm ne :) Hört sich Interessant an :)

Werde es gleich testen.

himitsu 7. Apr 2011 11:25

AW: Große Textdateien verarbeiten
 
sl.Text hängt alle Zeilen zu einem String zusammen ... also in der SL liegt jede Zeile als eigenständiger String rum und danach müssen Alle nochmal in einen gemeinsamen String rein > doppelder Speicher und diesmal muß er sogar zusammenhängend im RAM vorliegen.

Delphi-Quellcode:
Memo1.Lines.AddStrings(sl);
(ich weiß jetzt nicht, ob da schon ein BeginUpdate enthalten ist)

-187- 7. Apr 2011 11:28

AW: Große Textdateien verarbeiten
 
Hmm dauert immernoch lange...

Mein System: Quad Core, 2Ghz, 4GB Ram

Hier eine Test Procedure. Vor dem Aufruf wird "Memo1.Lines.BeginUpdate;" und hinterher "Memo1.Lines.EndUpdate;" aufgerufen ..

Delphi-Quellcode:
  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);
          Form1.Memo1.Lines.Add(tmp);
        end;
      CloseFile(F);
    end;
  end;

Bbommel 7. Apr 2011 12:24

AW: Große Textdateien verarbeiten
 
Hm, ich weiß, dass es nicht immer so beliebt ist, erst mal die eigentliche Frage selbst infrage zu stellen, aber so richtig zurückhalten kann ich mich gerade nicht - rein aus Neugierde - und bitte daher schon mal vorab um Entschuldigung. :)

Was um Gottes Willen willst du denn eigentlich mit einer 500-1000 MB großen Datei in einem Memo? Das kann sich doch kein Mensch niemalsnicht durchlesen... ;)

Wenn es nur um das Zusammenfügen mehrerer Dateien geht, würde ich doch nicht über ein Memo gehen. Und wenn das Ganze doch unbedingt angezeigt werden soll, wäre es vielleicht auch eine Überlegung, nicht immer alles zu laden und anzuzeigen, sondern auch nur das aus der Datei zu holen, was auch gerade für den Benutzer sichtbar ist. Das ist natürlich einiges mehr an Aufwand zu programmieren (man müsste ja eine Art eigenes Memo erstellen, das genau das macht), sollte aber den Speicher schonen und dann wären den Dateigrößen wahrscheinlich gar keine Grenzen durch dein Programm mehr gesetzt.

Bis denn
Bommel

Klaus01 7. Apr 2011 12:28

AW: Große Textdateien verarbeiten
 
Zitat:

Zitat von -187- (Beitrag 1093596)
Hmm im Grunde möchte ich mit einer Schleife mehrere Dateien in einem Memo aneinander hängen.

Du willst 500MByte Textdateien in ein Memo packen - wer will/muss das denn lesen?
Wenn es nur ums zusammenfügen geht, wäre ein nicht visueller Ansatz sinnvoller.

Mit copy auf command Ebene kann man auch Dateien aneinanderhängen.

Grüße
Klaus

-187- 7. Apr 2011 13:13

AW: Große Textdateien verarbeiten
 
Das soll auch keiner lesen jedoch soll es dargestellt werden. -> Kundenwunsch

Das Zusammenfügen soll / kann in nicht visueller Ebene passieren jedoch will ich nicht alles in einer Variable schreiben (Speicher Auslastung).

DeddyH 7. Apr 2011 13:15

AW: Große Textdateien verarbeiten
 
Du sollst etwas darstellen, was dann niemand liest? :gruebel:

Deep-Sea 7. Apr 2011 13:18

AW: Große Textdateien verarbeiten
 
Zitat:

Zitat von -187- (Beitrag 1093619)
Das soll auch keiner lesen jedoch soll es dargestellt werden. -> Kundenwunsch

Jaja, die Kunden :roll:
Wird jede Zeile auch als eigene Zeile dargestellt? Dann wäre z.B. eine ListBox (oder ähnliches) im virtuellen Modus eine Lösung ...

DeddyH 7. Apr 2011 13:21

AW: Große Textdateien verarbeiten
 
Zitat:

Zitat von Deep-Sea (Beitrag 1093622)
Wird jede Zeile auch als eigene Zeile dargestellt? Dann wäre z.B. eine ListBox (oder ähnliches) im virtuellen Modus eine Lösung ...

Oder gleich der VST.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:00 Uhr.
Seite 2 von 5     12 34     Letzte »    

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