![]() |
Mehrere Dateien in Memo laden?
Hallo
Habe mal wieder ein Problem. Und zwar möchte ich mehrere Dateien nacheinander in ein Memo laden. Dann soll die Datei, die gerade geladen ist, nach einem bestimmten String durchsucht werden. Anschließend soll wieder die nächste Datei ins Memo geladen werden. Am besten wäre es, wenn ich ein Verzeichnis, in dem sich alle Dateien befinden, einfach auswählen könnte. Nur ich habe keine Ahnung wie ich das machen könnte. Bekomme es nur hin, eine einzelne Datei zu laden. Ich hoffe, dass ihr halbwegs verstanden habt, was mein Problem ist. Bin über jeden Rat dankbar. MFG |
Re: Mehrere Dateien in Memo laden?
Hallo
Lade die Datei zuerst in eine StringListe und füge dann deren Text ins Memo so ein
Delphi-Quellcode:
Memo1.Lines.Append(StringListe.Text);
|
Re: Mehrere Dateien in Memo laden?
Danke für deine Antwort. Nur könntest du das vielleicht etwas genauer erklären? Sry bin noch ein ziemlicher Anfänger.
Was ist überhaupt eine Stringliste? Und wieso hilft sie mir bei meinem Problem, mehrere Dateien zu laden? |
Re: Mehrere Dateien in Memo laden?
Aber vor allem suche vorher in der StringList statt im Memo.
Nebenbei wäre es wohl sinnvoller nur die Zeilen mit den Fundstellen anzuzeigen oder zumindest nur ein paar Zeilen mit dem Fund. Sonst nutzt das ja rein gar nix, wenn die Datei 10.000 Zeilen hat und da irgendwo etwas gefunden wurde. Dann muss man da ja auch erst noch suchen. Ich selbst habe ein Fundfenster mit der Liste der Funde und der entsprechenden Zeile und bei einem Doppelklick kam man dann an die Stelle des Fundes. Ich glaube ich sollte den Editor doch nochmal überarbeiten und erneut veröffentlichen. Zu Demonstrationszwecken. Zitat:
Delphi-Quellcode:
Mehr dazu siehe Hilfe und ausprobieren. ;-)
var
xy: TStringList; begin xy := TStringList.Create; xy.LoadFromFile(Pfad + Dateiname...); // jetzt hast du die Zeilen in xy wie vorher in Memo.Lines //Am Ende aufräumen xy.Free; end; |
Re: Mehrere Dateien in Memo laden?
OkOk, die Stringliste war schonmal hilfreich. Aber mein eigentliches Problem ist ja, dass ich ein ganzes Verzeichnis mit Dateien, öfnnen will. Sie sollen nacheinander geladen und geprüft werden, ohne dass man jede Datei einzeln auswählen muss. Weiß da niemand was?
|
Re: Mehrere Dateien in Memo laden?
Dann zeige einen Verzeichnisauswahldialog an und suche alle Dateien im ausgewählten Verzeichnis.
zu 1.: ![]() zu 2.: ![]() |
Re: Mehrere Dateien in Memo laden?
Habe mich nun doch entschieden, es anders zu machen. Ich möchte mit OpenDialog einfach mehrere Textdateien auswählen und diese dann in ein Memo laden.
Doch wenn ich nun mehrere Dateien ausgewählt habe, werden im Memo nicht alle Textdateien angezeigt, sondern es wird nur die Datei angezeigt, die ich als erstes angeklickt habe. Habe schon viel rumprobiert und bin jetzt bei folgendem Code gelandet:
Delphi-Quellcode:
Wieso wird immer nur eine Datei angezeigt? :(
if OpenDialog1.Execute then
begin for i := 0 to OpenDialog1.Files.Count - 1 do begin Memo2.Lines.LoadFromFile(OpenDialog1.Files[i]) end; end; |
Re: Mehrere Dateien in Memo laden?
LoadFromFile lädt nun einmal den Dateiinhalt in das Memo, der alte Inhalt wird dabei überschrieben. Und damit bist du wieder bei einer TStringList zum Laden zuerst.
|
Re: Mehrere Dateien in Memo laden?
Also ungefähr so:
Delphi-Quellcode:
if OpenDialog1.Execute then
begin Liste := TStringlist.Create; try for i := 0 to OpenDialog1.Files.Count - 1 do begin Liste.LoadFromFile(OpenDialog1.Files[i]); Memo2.Lines.AddStrings(Liste); end; finally Liste.Free; end; end; |
Re: Mehrere Dateien in Memo laden?
Oh man wie dumm von mir. Ja so funktioniert es, Danke.
Edit: Tut mir Leid, dass ich euch schon wieder nerve. :D Nun habe ich ein Problem mit der Suche. Ich habe ja nun mehrere Dateien geladen. In diesen Dateien ist mein Suchwort auch mehrfach enthalten. Doch es wird immer nur angezeigt, dass es einmal vorhanden ist. Ich habe das Gefühl, dass die Stringliste nur bis zu einer bestimmten Stelle durchsucht wird. Hier erstmal mein Code:
Delphi-Quellcode:
strli ist eine Stringliste.
if CheckBox7.Checked = true then
begin for i := 0 to strli.Count - 1 do begin if pos(Edit1.Text, strli[i]) > 0 then begin Memo2.Lines.Add('Eigener Suchbegriff vorhanden') end; end; Wie schaffe ich es nun, dass die komplette Stringliste durchsucht wird? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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