Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mehrere Dateien in Memo laden? (https://www.delphipraxis.net/130908-mehrere-dateien-memo-laden.html)

coolio 15. Mär 2009 15:41


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

toms 15. Mär 2009 15:46

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

coolio 15. Mär 2009 15:53

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?

jaenicke 15. Mär 2009 15:55

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:

Zitat von coolio
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?

Eine TStringList ist so ähnlich wie Lines beim Memo. Nur ohne Memo.
Delphi-Quellcode:
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;
Mehr dazu siehe Hilfe und ausprobieren. ;-)

coolio 15. Mär 2009 16:08

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?

jaenicke 15. Mär 2009 16:24

Re: Mehrere Dateien in Memo laden?
 
Dann zeige einen Verzeichnisauswahldialog an und suche alle Dateien im ausgewählten Verzeichnis.
zu 1.: http://www.delphi-forum.de/viewtopic.php?p=160885
zu 2.: http://www.delphipraxis.net/internal...ect.php?t=2464

coolio 16. Mär 2009 16:12

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:
if OpenDialog1.Execute then
 begin
   for i := 0 to OpenDialog1.Files.Count - 1 do
   begin
   Memo2.Lines.LoadFromFile(OpenDialog1.Files[i])
   end;
end;
Wieso wird immer nur eine Datei angezeigt? :(

jaenicke 16. Mär 2009 16:14

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.

DeddyH 16. Mär 2009 16:17

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;

coolio 16. Mär 2009 16:22

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:
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;
strli ist eine Stringliste.

Wie schaffe ich es nun, dass die komplette Stringliste durchsucht wird?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.
Seite 1 von 2  1 2      

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