Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Ordnernamen ermitteln (https://www.delphipraxis.net/157960-ordnernamen-ermitteln.html)

dersunny 31. Jan 2011 15:24

Delphi-Version: 6

Ordnernamen ermitteln
 
Hallo ihr
ich bräuchte mal wieder eure Unterstützung.

Ich bräuchte gerade einen Programmschnipsel, der aus einem gegebenen Ordner die Namen aller Ordner (jedoch nicht Unterordner oder Dateien) ausliest, jedoch nirgendwo anzeigt.
Die Ordnernamen sind einerseits Zahlen von 01 bis 12 (stellen die Monate dar), in einem anderen Fall sind die Ordnernamen 10, 11,..., und sollen die Jahreszahl darstellen. Ein Jahr-2000 Problem (bzw 2100-Problem) kann nicht auftreten. Es wäre jedoch einrichtbar, dass die Jahres-Ordner 2010, 2011,... heißen. Die Ordnernamen sollen dann weiterbenutzt werden, um bestimmte Teile des Programms zu öffnen, auch in Verbindung mit TDate, was dann aber trivial ist.

Nach ein wenig rumstöbern im Netz und im schlauen Buch kristallisiert sich raus, dass es da wohl nur TSearchRec, in Verbindung mit FindFirst/FindNext, gibt.
Nun weiß ich aber nicht, ob das in meinem Fall funktioniert, und wenn doch wie ich das einbinde.
Für Alternativen bin ich ganz offen :) .


Vielen Dank schon mal im Vorraus für eure (wie immer) hilfreiche Unterstützung!

himitsu 31. Jan 2011 15:34

AW: Ordnernamen ermitteln
 
Delphi-Referenz durchsuchenFindFirst ist schon das Richtige.
In deiner OH und im Forum findest du viele Beispiele dazu.

Notfalls sollte in der CL auch noch irgendwas Fertiges ala TSearch... oder TFindAll zu finden sein.

DeddyH 31. Jan 2011 15:41

AW: Ordnernamen ermitteln
 
Aus dem Kopf, daher ohne Gewähr:
Delphi-Quellcode:
procedure ListAllSubDirs(RootDir: string; DirList: TStrings);
const
  faNewAnyFileEx = $00017FFF;
var
  SearchRec: TSearchRec;
begin
  if not Assigned(DirList) then
    raise Exception.Create('DirList is not assigned');
  RootDir := IncludeTrailingPathDelimiter(RootDir);
  DirList.BeginUpdate;
  try
    DirList.Clear;
    if FindFirst(RootDir + '*.*', faNewAnyFileEx, SearchRec) = 0 then
      try
        repeat
          if ((SearchRec.Attr and faDirectory) = faDirectory) and
             (SearchRec.Name <> '.') and
             (SearchRec.Name <> '..') then
            DirList.Add(RootDir + SearchRec.Name);
        until FindNext(SearchRec) <> 0;
      finally
        SysUtils.FindClose(SearchRec);
      end;
  finally
    DirList.EndUpdate;
  end;
end;

Gravitar 31. Jan 2011 15:42

AW: Ordnernamen ermitteln
 
Hi,

hier http://www.delphipraxis.net/134783-v...erstellen.html ist ein schönes Beispiel für die Ermittlung von Ordnern.

dersunny 31. Jan 2011 15:44

AW: Ordnernamen ermitteln
 
Vielen Dank erst Mal, ich werde mich mal ans Ausprobieren machen.


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