AGB  ·  Datenschutz  ·  Impressum  







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

Ordner nach *.exe durchsuchen

Ein Thema von Flodding · begonnen am 3. Mär 2009 · letzter Beitrag vom 3. Mär 2009
Antwort Antwort
Seite 1 von 3  1 23      
Flodding

Registriert seit: 26. Dez 2007
Ort: Kiel
121 Beiträge
 
Turbo Delphi für Win32
 
#1

Ordner nach *.exe durchsuchen

  Alt 3. Mär 2009, 17:24
Guten Abend zusammen...

ich habe folgenden Quellcode mit dem ich alle Ordner in einem Ordner auflisten kann... ohne Recursive suche und unterdateien ganz einfach so:

--Ordner <-- Zu durchsuchender Ordner
----Ordner im Ordner 1 <-- Erster gefundener Ordner im Ordner
----Ordner im Ordner 2 <-- Zweiter gefundener Ordner im Ordner
----usw.

das ganze lasse ich mit in eine Listbox auflisten.

nun muss ich aber in den unterordnern jeweils noch eine *.exe Datei finden und die in eine andere Listbox eintragen lassen...

ich hab etliche male versucht die FindFiles-funktionen die man ja überall findet um zu schreiben, jedoch ohne ergebniss...

hier mal der code der die ordner in einem ordner NICHT rekursiv findet und auflistet

Delphi-Quellcode:
procedure DirectorySearch(ADirectory: string; AMask: String);
var
  SR: TSearchRec;
begin
    if FindFirst(ADirectory + '*.*', faDirectory, SR)=0 then
    begin
      repeat
        if (SR.Attr and faDirectory = faDirectory) and (sr.Name<>'.') and (sr.Name<>'..') then
        with form1 do begin
        AdvSmoothListBox1.Items.Add.Caption:=(sr.Name);
        AdvSmoothListBox1.Items.Sort;
        end;
      until FindNext(SR)<>0;
      FindClose(SR);
    end;
end;
aufgerufen mit:

DirectorySearch('SUCHORDNER','*.*'); wie gesagt es müssen nur die *.exe Dateien in den jeweiligen unterordnern gefunden werden und in eine weitere listbox aufgelistet werden...

vielen dank im voraus für jede antwort
Flo
  Mit Zitat antworten Zitat
Benutzerbild von vsti
vsti

Registriert seit: 20. Sep 2004
Ort: Syke
70 Beiträge
 
Delphi 2005 Architect
 
#2

Re: Ordner nach *.exe durchsuchen

  Alt 3. Mär 2009, 17:33
Einfach neues TSearchRec und neues FindFirst/Findnext mit dem Filter '*.exe' und dem Attribut faAnyFile
Thorsten
  Mit Zitat antworten Zitat
Flodding

Registriert seit: 26. Dez 2007
Ort: Kiel
121 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Ordner nach *.exe durchsuchen

  Alt 3. Mär 2009, 17:38
an welcher stelle?! als neue Procedure?

sorry ich hab echt lange dran probiert und jetzt verlässts mich langsam...
Flo
  Mit Zitat antworten Zitat
mr_emre_d
(Gast)

n/a Beiträge
 
#4

Re: Ordner nach *.exe durchsuchen

  Alt 3. Mär 2009, 17:50
Delphi-Quellcode:
...
  if FindFirst(ADirectory + '*.exe', faDirectory, SR)=0 then
  // C:\*.exe -- so in etwa sollte es aussehen
...
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Ordner nach *.exe durchsuchen

  Alt 3. Mär 2009, 17:55
Einfach die Liste mit den Ordnern durchgehen und da nach Exe suchen:
Delphi-Quellcode:
// Eigentlich Blödsinn, für jede Aufgabe eine extra Procedure
// könnte man prima mit ein paar Parametern in einer lösen
// aber zu leichteren Verständnis
procedure ExeSearch(ADirectory: String);
var
  SR: TSearchRec;
begin
    if FindFirst(ADirectory + '\*.exe', faAnyFile, SR)=0 then
    begin
      repeat
        with form1 do begin
          ListBox1.Items.Add(sr.Name);
        end;
      until FindNext(SR)<>0;
      FindClose(SR);
    end;
end;

// Aufrufen etwa so
var
  i : Integer;
begin
  for i := 0 to AdvSmoothListBox1.Items.Count do
  begin
    ExeSearch(AdvSmoothListBox1.Items[i]);
  end;
end;
Ich bin auch kein Code-Spezialist, aber bei deiner ersten Procedure könnte man einiges übersichtlicher machen:
  Mit Zitat antworten Zitat
Flodding

Registriert seit: 26. Dez 2007
Ort: Kiel
121 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Ordner nach *.exe durchsuchen

  Alt 3. Mär 2009, 17:59
Zitat von mr_emre_d:
Delphi-Quellcode:
...
  if FindFirst(ADirectory + '*.exe', faDirectory, SR)=0 then
  // C:\*.exe -- so in etwa sollte es aussehen
...
das funktioniert so nicht... das hatte ich schon
Flo
  Mit Zitat antworten Zitat
Flodding

Registriert seit: 26. Dez 2007
Ort: Kiel
121 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Ordner nach *.exe durchsuchen

  Alt 3. Mär 2009, 18:05
Zitat von Satty67:
Delphi-Quellcode:
  for i := 0 to AdvSmoothListBox1.Items.Count do
  begin
    ExeSearch(AdvSmoothListBox1.Items[i]);
  end;
--> Incompatible Typen: 'String' und 'AdvSmoothListBoxItem'
Flo
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Ordner nach *.exe durchsuchen

  Alt 3. Mär 2009, 18:14
Ok, kenne AdvSmoothListBox1 nicht. dachte Items ist eine StringList.

ich muss jetzt etwas raten, funktioniert:
  ExeSearch(AdvSmoothListBox1.Items[i].Caption); Ansonsten musst Du selber schauen, wo die Strings gespeicheert sind.
  Mit Zitat antworten Zitat
Flodding

Registriert seit: 26. Dez 2007
Ort: Kiel
121 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Ordner nach *.exe durchsuchen

  Alt 3. Mär 2009, 18:27
Listenindex überschreitet das Maximum (12)
Flo
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#10

Re: Ordner nach *.exe durchsuchen

  Alt 3. Mär 2009, 18:29
for i := 0 to AdvSmoothListBox1.Items.Count -1 do Wenn das erste Element den Index 0 hat, hat das letzte den Index Count -1.
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 3  1 23      


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 19:58 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