AGB  ·  Datenschutz  ·  Impressum  







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

Alle Filenamen

Ein Thema von wendelin · begonnen am 7. Mai 2024 · letzter Beitrag vom 14. Mai 2024
 
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
126 Beiträge
 
Delphi 7 Enterprise
 
#13

AW: Alle Filenamen

  Alt 14. Mai 2024, 16:14
Hallo Delphi-freunde

Nochmals vielen dank für Eure zahlreichen Antworten.
Nicht Alles funktionierte.
Mein Dank an TurboMagic und PapaSchlumpf.
Ihr Vorschlag funktionierte am besten.

Delphi-Quellcode:
procedure TForm1.GetFileListEx(const Directory: string;Myfiles :TStrings;const FileMask: string);
var SearchRec: TSearchRec;
    lauf : Integer;
begin
  // Application.ProcessMessages; <-- habe ich drauf verzichtet
  Pfad_und_Header; // von mir eingesetzt
  lauf := 0;
  if FindFirst(IncludeTrailingPathDelimiter(Directory)+ FileMask, faAnyFile and not faDirectory
  and not faVolumeID and not faHidden, SearchRec) = 0 then
  try
    repeat
   // MyFiles.Add(IncludeTrailingPathDelimiter(directory)+SearchRec.Name);
   // habe ich herausgenommen da Fehlermeldung !!
    INC(lauf);
    StringGrid1.Cells[0,lauf] := (IncludeTrailingPathDelimiter(directory)+SearchRec.Name);
    until FindNext(SearchRec) <> 0;
  finally SysUtils.FindClose(SearchRec);
  end;
  glb_Lauf := lauf;
end;

procedure TForm1.SpeedButton4Click(Sender: TObject);
Var Directory : String;
    MyFiles : TStrings;
    FileMask : String;
begin
  Directory := 'F:\d_Mat2';
  FileMask := '*.*';
  GetFileListEx(Directory,MyFiles,FileMask);
end;
Alles läuft prima.

Jetzt habe ich aber noch 2 Fragen.
1. wo ist der Fehler in meinem noch kürzeren Code.?

Delphi-Quellcode:
procedure TForm1.SpeedButton3Click(Sender: TObject);
Var Path : String;
    F : TSearchRec;
    FileAttr : integer;
    Mask : String;
    zaehler : Integer;
begin
  FileAttr := faAnyFile;
  zaehler := 0;
  Path := 'F:\d_Mat2';
  Mask := '*.*';
  If FindFirst(Path + Mask,FileAttr,F) = 0 then try
    repeat
      INC(Zaehler);
      StringGrid1.Cells[0,zaehler] := F.Name; // die Schleife wird nur einmal
                                               // durchlaufen . Ergebnis : Nur der Pfad --> F:\d_Mat2
    until FindNext(F) <> 0;
  finally
    FindClose(F);
  end;
end;
2. Frage :
Wenn ich das StringGrid durchlaufe, muss ich mit der API- Function "ShellExecute" arbeiten um jeden einzelnen File abzuarbeiten,
oder kann ich das auch anders lösen ?

Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
Var i : Integer;
    MyStock : String;
    MyPath : String;
begin
  For i := 1 to glb_Lauf do
  begin
    MyPath := StringGrid1.Cells[0,i];
  // ShellExecute(0,MyPath,'OPEN',0,0,Nil);
  end;
end;
Wolfgang
  Mit Zitat antworten Zitat
 


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 04:41 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