AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Alle Dateien in Memo einlesen

Ein Thema von Ricoo · begonnen am 10. Jul 2007 · letzter Beitrag vom 11. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
Ricoo

Registriert seit: 10. Jul 2007
35 Beiträge
 
#1

Alle Dateien in Memo einlesen

  Alt 10. Jul 2007, 20:30
Hallo erstmal =)

Ich möchte für ein kleines Programm die Namen aller Dateien, die in in einem bestimmten Orner liegen einlesen
und in einem Memofeld ausgeben. Dank Google bin ich da auf findfirst() und findnext() gestoßen.
nur leider komm ich damit noch nicht so ganz klar.

Ich bitte euch mir kurz zu erklären, was ich falsch mache. Denn es wird immer nur ein Dateiname ausgegeben
und das auch nur, wenn ich die Datei genau festlege. Also zum Beispiel wenn ich directory:='F:/report.xls' setze,
wird im Memo1 "report.xls" ausgegeben.

Danke schonmal =)

Gruß
Rico

Hier ist mein Code:



Delphi-Quellcode:
procedure TForm1.LadenClick(Sender: TObject);
var directory: String;
    fle: tSearchRec;
    list: tStringList;
begin

    list:=tstringlist.create;

    directory:='F:/';

    if findfirst(directory, faAnyFile, fle) = 0 then
      begin
        repeat
          list.add(fle.name);
      until findnext(fle) <> 0;
    end;

    Memo1.Lines.Add(fle.Name);
end;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Alle Dateien in Memo einlesen

  Alt 10. Jul 2007, 20:34
Delphi-Quellcode:
  repeat
      Memo1.Lines.Add(fle.Name);
  until findnext(fle) <> 0;
Markus Kinzler
  Mit Zitat antworten Zitat
Ricoo

Registriert seit: 10. Jul 2007
35 Beiträge
 
#3

Re: Alle Dateien in Memo einlesen

  Alt 10. Jul 2007, 20:42
Danke für deine schnelle Antwort!
Funktioniert aber leider immer noch nicht. Immernoch das gleich wie vorher. =(
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Alle Dateien in Memo einlesen

  Alt 10. Jul 2007, 20:46
directory:='F:\';
Markus Kinzler
  Mit Zitat antworten Zitat
Ricoo

Registriert seit: 10. Jul 2007
35 Beiträge
 
#5

Re: Alle Dateien in Memo einlesen

  Alt 10. Jul 2007, 20:53
Jetzt ist wenigstens schonmal das "Memo1" aus dem Memo verschwunden aber in Sachen Dateinamen hat sich nich viel getan.
Hab irgentwie das Gefühl, dass ich was Grundlegendes nicht verstanden hab. Oo
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Alle Dateien in Memo einlesen

  Alt 10. Jul 2007, 21:06
Hallo,

zeig noch mal deinen aktuellen Code.

Es werden wohlgemerkt nur die Dateien unter der Wurzel (F:\)
angezeigt, Dateien in Unterverzeichnise nicht (-> rekursives suchen)


Heiko
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Alle Dateien in Memo einlesen

  Alt 10. Jul 2007, 21:06
Es fehlt noch die Maske also:
 if findfirst(directory+'*.*', faAnyFile, fle) = 0 then
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Alle Dateien in Memo einlesen

  Alt 10. Jul 2007, 21:11
Hallo Ricoo, willkommen in der Community
Versuch es mal so:
Delphi-Quellcode:
procedure ListFiles(Dir: string; List: TStrings; ListDirs: Boolean = false);
var Rec: TSearchRec;
    i: integer;
begin
  List.BeginUpdate;
  List.Clear;
  if Length(trim(Dir)) = 0 then exit;
  if AnsiLastChar(Dir) <> '\then
    Dir := Dir + '\';
  i := FindFirst(Dir + '*.*', faAnyFile, Rec);
  if i = 0 then
    repeat
      if (Rec.Name[1] <> '.') and (ListDirs or ((Rec.Attr and faDirectory) = 0)) then
        List.Add(Rec.Name);
      i := FindNext(Rec);
    until i <> 0;
  SysUtils.FindClose(Rec);
  List.EndUpdate;
end;
Aufruf für Dateien:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ListFiles('F:\',Memo1.Lines);
end;
Und zusätzlich für Dateien und Verzeichnisse:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ListFiles('F:\',Memo1.Lines,true);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ricoo

Registriert seit: 10. Jul 2007
35 Beiträge
 
#9

Re: Alle Dateien in Memo einlesen

  Alt 10. Jul 2007, 21:24
Yeaha, es hat Funktioniert. Das mit der Maske war's.
Danke für die Mühe, die ihr euch gemacht habt. =)

Meine Procedure sieht jetzt so aus..

Delphi-Quellcode:

procedure TForm1.LadenClick(Sender: TObject);
var directory: String;
    fle: tSearchRec;
    list: tStringList;
    VerzInhalt: TStringlist;
begin

    list:=tstringlist.create;

    directory:='F:\';

    if findfirst(directory + '*.*', faAnyFile, fle) = 0 then
      begin
        repeat
          Memo1.Lines.Add(fle.Name);
      until findnext(fle) <> 0;
    end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Alle Dateien in Memo einlesen

  Alt 10. Jul 2007, 21:28
Wozu die beiden StringListen? Die eine wird erzeugt und nicht wieder freigegeben, die andere überhaupt nicht benutzt
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 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