Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Suchen funktioniert nicht (https://www.delphipraxis.net/144515-suchen-funktioniert-nicht.html)

jonsen2.0.0.9 9. Dez 2009 15:04


Suchen funktioniert nicht
 
Hallo,

hab folgendes Problem bei dem ihr mir hoffentlich helfen könnt:

Habe ein Programm geschrieben bei dem ein selbstegewählter pafd rekursiv nach mp3 dateien durchsucht wird.

diese sollen ohne den Pfad in chekclistbox1 ausgegeben werden aber in sl2 (einer stringlist) mit Pfad
geschrieben werden. Allerdings lässt der den Pfad nicht weg:

Delphi-Quellcode:
Procedure FindFiles (aPath, aFindMask: String; aWithSub: Boolean; aResult: tStrings; removePath:Boolean);
Var
  FindRec: tSearchRec;
Begin

  If (aPath = '') or (aFindMask = '') or Not Assigned (aResult) Then
    Exit;

  If aPath[Length (aPath)] <> '\' Then
    aPath := aPath + '\';


  If FindFirst (aPath + aFindMask, faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then
    begin
     if removePath then
      aResult.Add(ExtractFileName(aPath + FindRec.Name))
     else
      aResult.Add(aPath + FindRec.Name);
    end;
    Until FindNext (FindRec) <> 0;

  FindClose (FindRec);


  If Not aWithSub Then
    Exit;


  If FindFirst (aPath + '*.*', faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then

        If Boolean (FindRec.Attr and faDirectory) Then

          FindFiles (aPath + FindRec.Name, aFindMask, aWithSub, aResult, false);
    Until FindNext (FindRec) <> 0;

   FindClose (FindRec);
End;

procedure TForm3.Button1Click(Sender: TObject);
var
 i: Integer;
begin
 if SelectDirectory('Verzeichnis wählen', '*:\', sDir) then
  begin
   if DirectoryExists(sDir) then
    begin

     FindFiles(sDir, '*.mp3', True, CheckListBox1.Items, true);

     sl2.Clear;

     for i := Pred(CheckListBox1.Items.Count) downto 0 do
      begin
       sl2.Add(CheckListBox1.Items[i]);
      end;
    end;
  end;
end;
hab schon mehreres versucht.
hab auch mit
Delphi-Quellcode:
removeExt
versucht aber geht auch nicht.

Hoffe ihr habt da was für mich.

schon mal DANKE

nahpets 9. Dez 2009 15:12

Re: Suchen funktioniert nicht
 
Hallo,

gehe ich recht in der Annahme, dass in aPath derr Pfad steht?
Delphi-Quellcode:
if removePath then
  aResult.Add(ExtractFileName(aPath + FindRec.Name))
else
  aResult.Add(aPath + FindRec.Name);
Dann müsste es doch reichen, bei
Delphi-Quellcode:
aResult.Add(ExtractFileName(aPath + FindRec.Name))
das aPath wegzulassen. Oder täusche ich mich da?

himitsu 9. Dez 2009 15:16

Re: Suchen funktioniert nicht
 
Zitat:

Delphi-Quellcode:
aResult.Add(ExtractFileName(aPath + FindRec.Name))

warum fügst du dann den Pfad erst hinzu, wenn du ihn eh nicht haben willst?
Delphi-Quellcode:
aResult.Add(FindRec.Name)
[edit]
du täuchst dich nicht


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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