Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ladevorgang einer Textdatei in ein TMemo beschleunigen? (https://www.delphipraxis.net/161082-ladevorgang-einer-textdatei-ein-tmemo-beschleunigen.html)

delphinub23 15. Jun 2011 20:31

Ladevorgang einer Textdatei in ein TMemo beschleunigen?
 
Hallo DPler :)

Ich lade eine Textdatei mittels TStringList.LoadFromFile in eine TStringList. Den Inhalt möchte ich dann so schnell als möglich in ein TMemo schreiben, so dass die Form nicht hängt/freezed.

Wie könnte ich das realisieren?


mfg - dnub

mkinzler 15. Jun 2011 20:32

AW: Ladevorgang einer Textdatei in ein TMemo beschleunigen?
 
-Zuerst in eine Stringliste laden
-Memo Sperren
-Liste assignen
-Memo entsperren

delphinub23 15. Jun 2011 20:37

AW: Ladevorgang einer Textdatei in ein TMemo beschleunigen?
 
Danke für den Hinweis, aber das bringt nur wenig.
Hast du sonst noch einen Ansatz?

mfg - dnub

Aphton 15. Jun 2011 20:45

AW: Ladevorgang einer Textdatei in ein TMemo beschleunigen?
 
Falls es eine unglaublich riesige Textdatei ist (>10/100mb), dann nur sequenziell reinladen und cachen?

Bernhard Geyer 15. Jun 2011 20:48

AW: Ladevorgang einer Textdatei in ein TMemo beschleunigen?
 
Einfach nicht TMemo nehmen. Es gibt einige alternative Komponenten die das Performancegrab des Win32-Controls vermeiden.

Satty67 15. Jun 2011 20:52

AW: Ladevorgang einer Textdatei in ein TMemo beschleunigen?
 
Wenn es nur eine Anzeige werden soll...
Delphi-Quellcode:
  Memo1.Lines.BeginUpdate;
  Memo1.Lines.LoadFromFile();
  Memo1.Lines.EndUpdate;
Aber letztlich läuft das Laden im Hauptthread, der auch die Nachrichten bearbeitet. Es wird immer hängen, solange geladen wird. Ein Extra Thread könnte das Laden übernehmen, denke aber, dass das Einfügen ins Memo hier am meisten Zeit kostet.

Aphtons Vorschlag wird die einzige Lösung sein. Per Stream blockweise laden und zwischen den Blöcken Botschaften abarbeiten.

€ (Post dazwischen): Ok, nicht die einzige, eine schnellere Komponente geht sicher auch, wenn gefunden ;) Meine TSynEdit läd schon schneller, obwohl da jede Menge Extra Features drin stecken. Gibt aber sicher auch Spezial-Komponenten.

himitsu 15. Jun 2011 21:00

AW: Ladevorgang einer Textdatei in ein TMemo beschleunigen?
 
Ein TMemo ist nicht für das Laden von vielen Daten geeignet.
Soll/muß es schnell gehn, dann hilft nur das ausweichen auf eine komponente welcher schneller ist
oder besser noch, welche dei Daten nur partiell läd/anzeigt.


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