AGB  ·  Datenschutz  ·  Impressum  







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

Ordnernamen in Listbox laden

Ein Thema von cyanroot · begonnen am 13. Jan 2009 · letzter Beitrag vom 13. Jan 2009
Antwort Antwort
Seite 2 von 3     12 3      
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#11

Re: Ordnernamen in Listbox laden

  Alt 13. Jan 2009, 22:53
if (S.Name<>'.') and (S.Name<>'..') then Result.Add(S.Name) // PS: dass die Funktion eine Stringliste erzeugt, finde ich nicht besonders glücklich, mach' doch 'ne Prozedur draus und übergebe dieser die Listbox zum direkten Befüllen
Ralph
  Mit Zitat antworten Zitat
cyanroot

Registriert seit: 19. Okt 2008
43 Beiträge
 
#12

Re: Ordnernamen in Listbox laden

  Alt 13. Jan 2009, 23:01
Und das geht wie? .
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#13

Re: Ordnernamen in Listbox laden

  Alt 13. Jan 2009, 23:07
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  DirectoryListing('C:/*',Listbox1.Items);
end;

procedure TForm1.DirectoryListing(const PATH:String;SL:TStrings);
var
  S : TSearchRec;
begin

  if FindFirst(PATH, faDirectory, S) = 0 then
  begin
    repeat
      if (S.Attr and faDirectory) = S.Attr then
       if (S.Name<>'.') and (S.Name<>'..') then SL.Add(S.Name)
    until FindNext(S) <> 0;
    FindClose(S);
  end;
  if Result.Count = 0 then SL.Add(format('%s enthält keine Ordner', [path]));
end;
// nur aus dem Kopf getippt
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#14

Re: Ordnernamen in Listbox laden

  Alt 13. Jan 2009, 23:07
Zitat von cyanroot:
Und das geht wie? .
Delphi-Quellcode:
procedure ListDirectory(Strings: TStrings; const Path: string);
var
  S: TSearchRec;
begin
  if FindFirst(Path, faDirectory, S) = 0 then
  begin
    repeat
      if ((S.Attr and faDirectory) = faDirectory) and
        (s.Name <> '.') and (s.Name <> '..') then
        Strings.Add(S.Name);
    until FindNext(S) <> 0;
    FindClose(S);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListDirectory(ListBox1.Items, 'C:\*.*');
end;
Thomas
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#15

Re: Ordnernamen in Listbox laden

  Alt 13. Jan 2009, 23:08
hihihi, schneller
Ralph
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Ordnernamen in Listbox laden

  Alt 13. Jan 2009, 23:09
Ja, weil ich die Stringliste dann nicht mehr freigeben kann. Aber Delphi dürfte den Speicher dann trotzdem wieder freigeben, was?

Ansonsten mach doch einfach so:

Delphi-Quellcode:
function TForm1.DirectoryListing(const PATH: string;
  var L: TListBox): Integer;
var
  S : TSearchRec;
begin
  Result := 0;
  if FindFirst(PATH, faDirectory, S) = 0 then
  begin
    repeat
      if ((S.Attr and faDirectory) = S.Attr) and (S.Name <> '.') and (S.Name <> '..') then
      begin
        L.Items.Add(S.Name);
        INC(Result);
      end;
    until FindNext(S) <> 0;
    FindClose(S);
  end;
  if Result = 0 then L.Items.Add(format('%s enthält keine Ordner', [PATH]));
end;
Ich liebe Funktionen
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#17

Re: Ordnernamen in Listbox laden

  Alt 13. Jan 2009, 23:11
Ja, geht auch, aber TStrings sind universeller
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#18

Re: Ordnernamen in Listbox laden

  Alt 13. Jan 2009, 23:13
Zitat von taaktaak:
hihihi, schneller
Aber falsch
Zitat von taaktaak:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  DirectoryListing('C:/*',Listbox1.Items);
end;

procedure TForm1.DirectoryListing(const PATH:String;SL:TStrings);
var
  S : TSearchRec;
begin

  if FindFirst(PATH, faDirectory, S) = 0 then
  begin
    repeat
      if (S.Attr and faDirectory) = S.Attr then // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       if (S.Name<>'.') and (S.Name<>'..') then SL.Add(S.Name)
    until FindNext(S) <> 0;
    FindClose(S);
  end;
  if Result.Count = 0 then SL.Add(format('%s enthält keine Ordner', [path]));
end;
// nur aus dem Kopf getippt
Funkt nur, wenn wirklich nur das Directory-Flag gesetzt ist - es darf also nicht komprimiert/veschlüsselt/schreibgeschützt/etc. sein
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#19

Re: Ordnernamen in Listbox laden

  Alt 13. Jan 2009, 23:18
Schon richtig!
Das ist nur übernommen, nicht von mir.
Hätte korrigiert werden müssen!
Sorry!
Ralph
  Mit Zitat antworten Zitat
cyanroot

Registriert seit: 19. Okt 2008
43 Beiträge
 
#20

Re: Ordnernamen in Listbox laden

  Alt 13. Jan 2009, 23:21
Danke euch . Und warum ist das besser? .
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 07:55 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