Autor Beitrag
bfelix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 61

WIN 2000 Prof., Win XP Prof., Win 7 Starter und Prof., SuSe Linux 11.3,
Delphi 7 Pers.
BeitragVerfasst: Sa 05.03.11 21:34 
Hallo Community,
ich würde gerne mit einer Software, die Bilder bearbeitet, einen kompletten Ordner durcharbeiten. Folgendes ist ziemlich klar:
ausblenden Delphi-Quelltext
1:
2:
3:
for i:= 1 to *Anzahl Dateien* do begin
bearbeiten(*Name der Datei*);
end;

Dabei ist bearbeiten eine Prozedur, die mit dem Parameter filename o.ä. die Datei bearbeitet
Allerdings weiß ich nicht, und habe auch auf unerklärliche Weise auf Google und im Forum nichts gefunden, wie ich zuerst die Menge der Dateien und dann den Dateinamen von einzelnen Dateien herausbekomme. Kann mir irgendwer sagen, wie ich das machen kann?

mfg BFelix
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Sa 05.03.11 21:58 
suchst Du sowas?
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:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
type
TFileINfo=Record
  FileNameRel:String;
  FileName:String;
  FilePathRel:String;
  FileNameOnly:String;
  FileSizeKB:Double;
  FileDate:TDateTime;
  RootPath:Boolean;
End;
TFileInfoArray=Array of TFileINfo;




Procedure ReadDir(var Result:TFileInfoArray ;Pfad, WildCard: String;Recursiv:Boolean=true;RootPath:Boolean=false);
Var SR: Sysutils.TSearchRec;
    Erg: Integer;
    RelDir : String;
Begin
 if length(Pfad)=0 then Pfad:='\';
 If Pfad[length(Pfad)] <> '\' Then Pfad := Pfad + '\';
 RelDir := ExtractFilePath(WildCard);
 WildCard := ExtractFileName(WildCard);
 Erg := FindFirst(Pfad+RelDir+'*.*', faDirectory, SR);
 While Erg = 0 Do
 Begin
   If (SR.attr And faDirectory) <> 0 Then
    If SR.Name[1] <> '.' Then
     if Recursiv then ReadDir(Result,Pfad, RelDir+SR.Name+'\'+WildCard);
  Erg := FindNext(SR);
 End;
 Erg := FindFirst(Pfad+RelDir+WildCard, $27, SR);
 {Das Attribut $27 bedeutet
  alle echten Dateien}

 While Erg = 0 Do
 Begin
  SetLength(Result,High(Result) + 2);
  Result[High(Result)].FileNameOnly:= SR.Name;
  Result[High(Result)].FileNameRel := RelDir+SR.Name;
  Result[High(Result)].FileName    := Pfad+RelDir+SR.Name;
  Result[High(Result)].FilePathRel := RemoBackSlash(RelDir);
  Result[High(Result)].FileDate    := FileDateToDateTime(SR.Time);
  Result[High(Result)].RootPath    := RootPath;

  Result[High(Result)].FileSizeKB  := sr.Size / 1024;
  Erg := FindNext(SR);
 End;
 sysutils.FindClose(SR);
End;

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 05.03.11 22:10 
Dazu haben wir natürlich auch etwas in der Library:
www.delphi-library.d...ien+suchen_1107.html
Aber da schaut ja irgendwie kaum wer nach... :roll: