AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wie kann ich eine Prozedur/Funktion benutzen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich eine Prozedur/Funktion benutzen?

Ein Thema von sniffy · begonnen am 2. Sep 2004 · letzter Beitrag vom 6. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
sniffy

Registriert seit: 1. Sep 2004
Ort: Niederrhein
37 Beiträge
 
Delphi 7 Enterprise
 
#1

Wie kann ich eine Prozedur/Funktion benutzen?

  Alt 2. Sep 2004, 15:12
Hi. Bin neu hier und Delphi Neuling. Ich hab direkt mal ne Frage. Zuerst der Code:

Delphi-Quellcode:
procedure GetFiles(const ADirectory: string; Files: TStringList;
                   SubFolders: Boolean);
  // Hilfsfunktion, um Schrägstriche zu entfernen bzw. hinzuzfügen, wenn nötig
  function SlashSep(const Path, S: string): string;
  begin
    if AnsiLastChar(Path)^ <> '\then
      Result := Path + '\' + S
    else
      Result := Path + S;
  end;
var
  SearchRec: TSearchRec;
  nStatus: Integer;
begin
  //Zuerst alle Dateien im aktuelle Verzeichnis finden
  //Anstatt *.* kann auch etwas anderes wie *.jpg oder *.gif eingegeben werden,
  //um nur Dateien eines bestimmten Typs zu finden.
  nStatus := FindFirst(PChar(SlashSep(ADirectory, '*.*')), 0, SearchRec);
  while nStatus = 0 do
  begin
    Files.Add(SlashSep(ADirectory, SearchRec.Name));
    nStatus := FindNext(SearchRec);
  end;
  FindClose(SearchRec);
  //Als nächstes nach Unterverzeichnissen suchen und wenn benötigt durchsuchen
  if SubFolders then
  begin
    nStatus := FindFirst(PChar(SlashSep(ADirectory, '*.*')), faDirectory,
      SearchRec);
    while nStatus = 0 do
    begin
      //Wenn es ein Verzeichnis ist, Rekursion verwenden
      if ((SearchRec.Attr and faDirectory) <> 0) then
      begin
        if ( (SearchRec.Name <> '.') and (SearchRec.Name <> '..') ) then
          GetFiles(SlashSep(ADirectory, SearchRec.Name), Files, SubFolders);
      end;
      nStatus := FindNext(SearchRec)
    end;
    FindClose(SearchRec);
  end;
end;
Wie benutz ich den Code jetzt? Ich will das ein Verzeichnis in meinen Fall nach HTML-Dateien durchsuch und dann in einer ListBox (kann auch was anderes sein) angezeigt wird.
Für Antworten wäre ich sehr sehr Dankbar!
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Wie kann ich ein Code benutzen?

  Alt 2. Sep 2004, 15:25
Hi!

Herzlich willkommen in der DP.

Hier mal ein Beispielaufruf:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var files: TStringlist;
begin
 files:=TStringlist.Create;
 Getfiles('c:\', files,false);
 Listbox1.Items:=files;
 files.Free;
end;
Es wird in C:\ jetzt nach allen Dateien gesucht, die Ergebnisse in files gespeichert, Unterordner werden nicht durchsucht. Dann werden der Listbox die Ergebnisse zugewiesen.
Willst du nur nach *.htm suchen, musst du deinen geposteten Code verändern, an der entsprechenden Stelle steht ein Kommentar.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Wie kann ich ein Code benutzen?

  Alt 2. Sep 2004, 15:27
Ansonsten haben wir in unserer Code-Library auch noch diesen Beitrag mit einem Code zu dem Thema.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
sniffy

Registriert seit: 1. Sep 2004
Ort: Niederrhein
37 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Wie kann ich ein Code benutzen?

  Alt 2. Sep 2004, 15:31
@ fkerber
Danke, hat geklappt!

Aber wie mach ich das, das das Programm auch alle Unterverzichnisse durchsucht?
  Mit Zitat antworten Zitat
DeCodeGuru

Registriert seit: 7. Jun 2002
Ort: Walluf
66 Beiträge
 
#5

Re: Wie kann ich ein Code benutzen?

  Alt 2. Sep 2004, 15:33
Einfach als letzten Parameter der Funktion den Wert TRUE übergeben. Lies dir am besten mal einige Tutorials zu Delphi durch, dann wirst du solche Probleme sehr schnelle auch selber lösen können.
MfG DeCodeGuru
-=][ Wenn Windows die Antwort ist, muss es eine doofe Frage gewesen sein ][=-
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#6

Re: Wie kann ich ein Code benutzen?

  Alt 2. Sep 2004, 15:34
Hi!
Die Procedure GetFiles erwartet 3 Paramter: Den Ordner, die Ergebnisliste und die Angabe, ob Unterverzeichnisse durchsucht werden sollen, oder nicht.
Änderst du also den 3. Parameter von false auf True, so werden acuh Unterverzeichnisse durchsucht.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
sniffy

Registriert seit: 1. Sep 2004
Ort: Niederrhein
37 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Wie kann ich ein Code benutzen?

  Alt 2. Sep 2004, 15:45
Danke, klappt wurderbar!
Hab mir schon genug Tutorials durchgelesen, aber für so ein Problem hab ich nie ne Lösung gefunden.
Und außerdem ist doch so ein Forum daür da um Anderen wie mir zu helfen. Dafür bin ich dankbar.

Aber weiter zu dem Code.

Mann muss sich ja vorher festlegen welches Laufwerk durcht werden soll. In diesen Fall ist das ja C:\. Wie stell ich das an während das Programm läuft? Quasi zur Laufzeit, um nicht jedesmal den Code zu ändern wenn ich auf ne andere Festplatte zugreifen will.
  Mit Zitat antworten Zitat
Golze

Registriert seit: 26. Aug 2004
Ort: Berlin
32 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Wie kann ich ein Code benutzen?

  Alt 2. Sep 2004, 16:05
Hallo Sniffi,
für unterschiedliche Laufwerke kannst du ein Edit-Feld nutzen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Getfiles(Edit1.Text, Listbox1.Items, false); //Edit1.Text neu eingefügt
end;
Kay
Kay Golze
Wo Gold ist, muß es auch glänzen.
  Mit Zitat antworten Zitat
Golze

Registriert seit: 26. Aug 2004
Ort: Berlin
32 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: Wie kann ich ein Code benutzen?

  Alt 2. Sep 2004, 16:09
Hallo Sniffi,
noch ein Hinweis auf dein Quellcode. Du solltest noch folgendes ändern:

Dein Code ist
Delphi-Quellcode:
procedure GetFiles(const ADirectory: string; Files: TStringList;
                   SubFolders: Boolean);
änder auf

Delphi-Quellcode:
procedure GetFiles(const ADirectory: string; Files: TStrings; //TStrings ist an dieser Stelle besser
                   SubFolders: Boolean);
Grüße Kay
Kay Golze
Wo Gold ist, muß es auch glänzen.
  Mit Zitat antworten Zitat
sniffy

Registriert seit: 1. Sep 2004
Ort: Niederrhein
37 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Wie kann ich ein Code benutzen?

  Alt 2. Sep 2004, 16:53
Vielen vielen Dank!
Ich werd mich morgen wieder melden! Hab jetzt ein Fussballspiel.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:29 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