Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Teilbereich einer Datei in Memo anzeigen (große Datei) (https://www.delphipraxis.net/213579-teilbereich-einer-datei-memo-anzeigen-grosse-datei.html)

Alex_ITA01 21. Aug 2023 08:48

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?

paule32.jk 21. Aug 2023 09:04

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 ...

Alex_ITA01 21. Aug 2023 09:15

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 ;-)

freimatz 21. Aug 2023 12:54

AW: Teilbereich einer Datei in Memo anzeigen (große Datei)
 
Nur Laden aber nicht Editieren?
Hier war schon mal was ähnliches

DieDolly 21. Aug 2023 13:32

AW: Teilbereich einer Datei in Memo anzeigen (große Datei)
 
Schonmal den SJMmfFileReader getestet?
https://entwickler-ecke.de/topic_SJ+...r_99933,0.html

Bzw die Weiterentwicklung
https://entwickler-ecke.de/viewtopic.php?t=100088

dummzeuch 21. Aug 2023 13:56

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:

https://blog.dummzeuch.de/2016/05/29...ge-text-files/

und dann nochmal

https://blog.dummzeuch.de/2013/02/16...rgetextviewer/

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.

himitsu 21. Aug 2023 14:04

AW: Teilbereich einer Datei in Memo anzeigen (große Datei)
 
Es gab auch hier schon mehrere Threads dazu
Die Suche meint:



https://www.delphipraxis.net/88342-t...n-oeffnen.html
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/147637-...rtualmemo.html
https://www.delphipraxis.net/139696-...ssignfile.html
https://www.delphipraxis.net/130750-...-zu-laden.html
https://www.delphipraxis.net/130863-filequicksort-dateien-mit-wenig-speicherlast-sortieren.html
https://www.delphipraxis.net/90203-t...ell-laden.html
...

Alex_ITA01 22. Aug 2023 06:40

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

himitsu 22. Aug 2023 10:07

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.

Alex_ITA01 22. Aug 2023 10:21

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 00:50 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