Autor Beitrag
TOMahawk85
Hält's aus hier
Beiträge: 15

WinXP
Delphi 2005
BeitragVerfasst: Mo 15.05.06 17:29 
Hallo liebe Forumfreunde,

der Titel mag den einen oder anderen Nerven, aber mein Problem diesbezüglich konnte noch nicht ganz gelöst werden (auch mit der Suche nicht).

Wie ich die Dateien/Ordner in einer Listbox oder einem Memo speichern kann ist auch mir inzwischen gelungen. Aber ich brauche die Dateien nicht in einer Listbox o.ä., sondern will nur die Anzahl der Dateien/Ordner wissen.

Ich habe versucht bei den Programmausschnitten mit Listbox/Memo eine Variable fürs zählen einzubauen, allerdings liefert die mir absurd hohe Werte.

Wie man nun hoffentlich sieht unterscheidet sich meine Frage leicht von den Antworten, die andere schon erhalten haben.

Ich bin für jede Hilfe überaus dankbar,
TOMahawk85

P.S. Der Idealfall wäre, wenn jede Datei (nicht Ordner) mit dazugehöriger Größe in Byte nebeneinander in einem Feld gespeichert wird + eine Zählervariable für die Anzahl.
Hansi@OMG
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 304

Vista
Delphi 2006 Prof., Lazarus
BeitragVerfasst: Di 16.05.06 08:17 
Wie wärs dann mit dieser Lösung:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
//Aus der Delphi-Library um rekursiv nach Dateien zu suchen
procedure GetFilesInDirectory(ADirectory: string; AMask: String; AList: TStrings; ARekursiv: Boolean);
var
  SR: TSearchRec;
begin
  if (ADirectory<>''and (ADirectory[length(ADirectory)]<>'\'then
    ADirectory:=ADirectory+'\';

  if (FindFirst(ADirectory+AMask,faAnyFile-faDirectory,SR)=0then begin
    repeat
      if (SR.Name<>'.'and (SR.Name<>'..'and (SR.Attr<>faDirectory) then
          AList.Add(ADirectory+SR.Name)
    until FindNext(SR)<>0;
    FindClose(SR);
  end;

  if ARekursiv then
    if (FindFirst(ADirectory+'*.*',faDirectory,SR)=0then
    begin
      repeat
        if (SR.Name<>'.'and (SR.Name<>'..'then
          GetFilesInDirectory(ADirectory+SR.Name,AMask,AList,True);
      until FindNext(SR)<>0;
      FindClose(SR);
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var templist : Tstringlist;
begin
templist:=tstringlist.create;
GetFilesInDirectory('C:\test\','*.*',templist,False);
showmessage(inttostr(templist.Count));
templist.free;
end;

Du lädst dir die Dateien nicht in eine Listbox oder in ein Memo, sondern nur in eine temporäre Stringlist und lässt dir dann einfach ausgeben, wie viele Einträge in der Liste sind.

_________________
Who doesn't know the Micrsoft developer "Mahatma Fatal Error"?
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Di 16.05.06 08:27 
Hab grad mal schnell n Beispiel zamgeschustert

Hoffe ist das was du suchst

Quelltext ist eigentlich dokumentiert =)

lg
Stefan
Einloggen, um Attachments anzusehen!
_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
TOMahawk85 Threadstarter
Hält's aus hier
Beiträge: 15

WinXP
Delphi 2005
BeitragVerfasst: Di 16.05.06 14:13 
Titel: Ich mag gute und schnelle Antworten
Vielen Dank,

ich hab mich ja erst gestern hier im Forum angemeldet und bin überaus positiv überrascht, wie gut die Hilfe hier ausfällt. Gestern hat eine Antwort gerade mal 7 Minuten gedauert und heute bekomme ich sogar ein fertiges Programm.
Dafür gebührt größter Respekt.

Ich werde auf jeden Fall beide Varianten probieren und möchte mich noch mal bedanken, dass so schnell kompetente Antworten kamen.

Hoffe man liest voneinander,
TOMahawk85