![]() |
Teilbereich einer Datei in Memo anzeigen (große Datei)
Moin zusammen,
ich habe schon einiges im Forum gesucht aber nicht das gefunden, was ich gerne hätte :-) Angenommen ich habe eine 500 MB große Textdatei (nur Text!) und ich möchte den Inhalt in einem Memo darstellen. Natürlich will ich nicht den kompletten Inhalt auf einmal darstellen aber evtl. anhand der aktuellen Größe des Fensters (=Memo, da alClient) so viel wie gerade maximal sichtbar ist. Per vertikaler Scrollbar soll dann auch nur so viel "nachgeladen" werden, wie eben sichtbar ist. Das heißt, ich möchte auch nicht die komplette Datei in das Memo laden sondern eben nur so viel, wie gerade auch sichtbar ist. Gibt es dafür schon etwas fertiges von Borland/Embarcadero/CodeGear/Idera oder wie sie auch immer heißen? Gibt es dafür schon etwas fertiges von Fremdanbietern? Wenn es da nichts gibt, was wären die Stichworte, um sowas zu implementieren bzw wie würdet ihr an diese Aufgabenstellung ran gehen? |
AW: Teilbereich einer Datei in Memo anzeigen (große Datei)
würde sagen, das man dafür eine Datenbank macht, und dann ein
SQL-Query anlegt, mit WHERE einen Filter setzt, und mit den Zusatz LIMIT die Anzahl der Datenreihen/Records limitiert. Dann kann man mit einen weiteren Query die nächsten Datenreihen filtern, und anzeigen. Geht etwas schneller, als manuell nachprogrammieren. Möglichkeit 1: DBMemo Mäglichkeit 2: DBGrid Alles in der Pro, und aufwärts enthalten. Ansonsten Jedi ... |
AW: Teilbereich einer Datei in Memo anzeigen (große Datei)
Datenbanken möchte ich keine integrieren.
Es soll von der Architektur so bleiben wie es ist. Im TotalCommander (Nachfolger vom NortonCommander) gibt es da ein nettes Feature, welches ich mir ähnlich vorstelle. Nennt sich dort "F3" (=Viewer). Der lädt die Datei innerhalb von 1-2 Sekunden (selbst 2GB Text-Dateien). Zeigt aber eben nur den aktuellen Ausschnitt an und beim Scrollen wird "nachgeladen". So stelle ich mir das vor. Bitte keine Diskussion über Sinnhaftigkeit von 2GB großen Text-Dateien starten. Ich möchte nur ein Lösungsansatz ;-) |
AW: Teilbereich einer Datei in Memo anzeigen (große Datei)
|
AW: Teilbereich einer Datei in Memo anzeigen (große Datei)
Schonmal den SJMmfFileReader getestet?
![]() Bzw die Weiterentwicklung ![]() |
AW: Teilbereich einer Datei in Memo anzeigen (große Datei)
Wenn es nicht unbedingt in Memo sein muss und es nur ums Anzeigen geht, habe ich das mal mit einem Virtual String Grid (dzVirtualStringGrid) gemacht:
![]() und dann nochmal ![]() Ich glaube nicht, dass das mit einem TMemo überhaupt geht, ohne sich einen abzubrechen. Wenn Memo, würde ich ein SynMemo (aus dem SynEdit Projekt) nehmen. |
AW: Teilbereich einer Datei in Memo anzeigen (große Datei)
Es gab auch hier schon mehrere Threads dazu
Die Suche meint: ![]() Es gab auch noch eine Klasse von jemand Anderem (wesentlich mehr ausgebaut/optimiert) ... Sie dürfte bestimmt auch in den Threads irgendwo mit erwähnt werden. ![]() ![]() ![]() https://www.delphipraxis.net/130863-filequicksort-dateien-mit-wenig-speicherlast-sortieren.html ![]() ... |
AW: Teilbereich einer Datei in Memo anzeigen (große Datei)
Danke für die vielen Anregungen.
Den SJMmfFileReader kenne ich, werde mir das mal genau angucken (vorallem die Weiterentwicklung). Es geht mir in erster Linie darum, den Text anzuzeigen und da bietet sich am einfachsten ein Memo an. Editieren soll man nicht aber würde natürlich gerne die "normalen" Textfunktionen nutzen können wie z.B. von einer Stelle im Text bis zu einer anderen markieren und dann Kopieren in die Zwischenablage. Danke erstmal für die Ideen |
AW: Teilbereich einer Datei in Memo anzeigen (große Datei)
Problemchen beim Editieren ist, dass sich auch alle nachfolgenen Blöcke/Speicher verschieben, wenn der geänderte Text länger/kürzer ist.
|
AW: Teilbereich einer Datei in Memo anzeigen (große Datei)
Sorry für das unglückliche ausdrücken...
Ich editiere nichts, ich will nur markieren, kopieren, suchen können. Das reicht vollkommen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 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-2025 by Thomas Breitkreuz