Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Text-Datei schnell laden (https://www.delphipraxis.net/90203-text-datei-schnell-laden.html)

fips0705 13. Apr 2007 11:41


Text-Datei schnell laden
 
Hy,
ich habe eine Text-Datei reines ASCI (80.000 Zeilen) nun versuche ich diese mit

Delphi-Quellcode:
Memo1.lines.LoadFromFile(opendialog1.filename) ;
zu laden, dies funktioniert auch, nur dauert das Laden sehr lange ca 2 Minuten.
Es liegt nicht am Rechner.
Kennt Ihr eine Funktion wie das Laden schneller funktioniert?
Mit UltraEdit dauert das Lesen nur ca. 4 Sekunden.

SirThornberry 13. Apr 2007 11:43

Re: Text-Datei schnell laden
 
Willst du die Datei nur in den Speicher laden oder auch anzeigen?

Klaus01 13. Apr 2007 11:46

Re: Text-Datei schnell laden
 
Hierdurch sollte es etwas schneller gehen:
Delphi-Quellcode:
 
Memo1.Lines.BeginUpdate;
Memo1.lines.LoadFromFile(opendialog1.filename) ;
Memo1.Lines.EndUpdate;
Grüße
Klas

fips0705 13. Apr 2007 11:48

Re: Text-Datei schnell laden
 
Danke Klaus 01 werde es gleich mal testen

nur in den Speicher laden, ich muss die Datei anschliessend umwandeln.
z.B. Zeilen raus und verschieben usw.

Jelly 13. Apr 2007 11:50

Re: Text-Datei schnell laden
 
Wenns nur in den Speicher laden ist, dann brauchst du doch kein Resourcefressendes Memo. Nimm doch einfach eine TStringList:

Delphi-Quellcode:
var
  SL : TStringList ;
begin
    SL := TStringList.create ;
    SL.LoadFromFile(opendialog1.filename) ;
end ;

fips0705 13. Apr 2007 11:53

Re: Text-Datei schnell laden
 
Jelly, Danke
werde ich geich mal ändern

himitsu 13. Apr 2007 11:54

Re: Text-Datei schnell laden
 
Dann nimm doch gleich TStringList.

Die Edits müssen sich ja zusätzlich noch um das Anzeigen und Verwalten(Übergabe an die entsprechenden Komponente/WinAPIs) der Daten kümmern.

@Klaus01: ich glaub BeginUpdate+EndUpdate werden intern von LoadFormFile auch schon aufgerufen :gruebel:


PS: Hier im Forum suchenTPartialTextfile (wobei die 80.000 mit wohl nur rund 3 MB auch locker komplett in den Speicher passen)

jmit 13. Apr 2007 16:38

Re: Text-Datei schnell laden
 
Hallo,

Zitat:

Zitat von himitsu
ich glaub BeginUpdate+EndUpdate werden intern von LoadFormFile auch schon aufgerufen

Woher hast Du die Information? Kann ich mir aber schon gut vorstellen.

Ich habe das Problem einmal in einem kurzen Programm versucht nachzustellen. Das Laden der Datei geht mit Loadfromfile sehr schnell.
Ohne "BeginUpdate;" und "EndUpDate".

Delphi-Quellcode:
Memo1.Lines.BeginUpdate;
Memo1.lines.LoadFromFile(opendialog1.filename) ;
Memo1.Lines.EndUpdate;
Gruß Jörg

Jelly 13. Apr 2007 16:46

Re: Text-Datei schnell laden
 
Zitat:

Zitat von jmit
Woher hast Du die Information? Kann ich mir aber schon gut vorstellen.

"Deklaration von LoadFromFile" suchen und den Code lesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:28 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