AGB  ·  Datenschutz  ·  Impressum  







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

suche Funktion FindLastDir

Ein Thema von bluescreen25 · begonnen am 11. Nov 2007 · letzter Beitrag vom 16. Nov 2007
Antwort Antwort
Seite 1 von 3  1 23      
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#1

suche Funktion FindLastDir

  Alt 11. Nov 2007, 18:39
suche eine Funktion, die mir ausgehend von einem Pfad , in dem weitere Unterverzeichnisse sind, immer tiefer ins erste "erreichbare"** Unterverzeichnis geht bis keines mehr vorhanden ist und mir den "tiefsten" Pfad zurückliefert.

** der erste Ordner,alphabetisch wie im Windows-Explorer

Jemand ne Idee oder Ansatz?

Gruß, bluescreen25
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#2

Re: suche Funktion FindLastDir

  Alt 11. Nov 2007, 18:41
http://dsdt.info/tipps/?id=134
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: suche Funktion FindLastDir

  Alt 11. Nov 2007, 19:01
Zitat von Nuclear-Ping:
http://dsdt.info/tipps/?id=134
Danke, aber eigendlich wollte ich nicht alle Files oder Dirs in Stringlisten verwalten, lediglich die Rückgabe der tiefsten Ebene eines Pfades.

Dachte eher an sowas nur umgekehrt...:

Delphi-Quellcode:
function GetAudioplayerDirectory(const APath: String): String;
var
  i: Integer;
begin
  Result:=APath;
  i:=Length(APath);
  If i>3 Then
  Begin
    Repeat
      Dec(i);
    Until (APath[i] = '\') OR (i=1);
    If APath[i]='\Then
      Result:=Copy(APath,1,i);
  End
end;
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: suche Funktion FindLastDir

  Alt 11. Nov 2007, 19:15
Hallo,

vielleicht hilft dir das: Letzten Ordnernamen eines Pfades ermitteln

Grüße vom marabu
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: suche Funktion FindLastDir

  Alt 11. Nov 2007, 19:30
Zitat von marabu:
Hallo,

vielleicht hilft dir das: Letzten Ordnernamen eines Pfades ermitteln

Grüße vom marabu
das ist leider auch nicht ,was ich suche...

Ich habe C:\Ordner1 und am Ende möchte ich C:\Ordner1\UnterOrdner1\UnterOrdner1... haben, sprich den letzten und im ersten Moment unbekannten Pfad. Falls es noch UnterOrdner 2 oder mehr gibt, sind diese unberücksichtigt. Immer nur solange in den ersten verfügbaren Ordner springen bis es nicht tiefer geht und dann den vollen Pfad ausgeben.


Gruß, bluescreen25
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: suche Funktion FindLastDir

  Alt 11. Nov 2007, 21:01
Das kannst du recht einfach mit FindFirst ohne Rekursion erledigen.
Einfach FindFirst mit dem Dateinamen des letzten Aufrufs aufrufen, bis der Rückgabewert <> 0 ist.
Als Filter solltest du faDirectory setzen
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#7

Re: suche Funktion FindLastDir

  Alt 11. Nov 2007, 21:14
Zitat von bluescreen25:
Zitat von Nuclear-Ping:
http://dsdt.info/tipps/?id=134
Danke, aber eigendlich wollte ich nicht alle Files oder Dirs in Stringlisten verwalten, lediglich die Rückgabe der tiefsten Ebene eines Pfades.
Was ist ein "Pfad" in dem Fall für dich? Ein String oder ein Verzeichnis auf der Festplatte, von dem du noch nicht weißt, was die tiefste Ebene ist?

Falls es ein String ist, kannst du dir entweder eine Funktion schreiben, die den String rückwärts nach dem ersten Vorkommen von '\' (oder '/' je nach Fall) durchsucht und einfach mit Copy den Teil von der Position ausgehend rauskopieren oder nach einer "LastPos" Funktion suchen.

Falls es das letztere ist, dann sollte der Link die Grundlage bilden, die letzte Ebene eines Verzeichnisses zu finden.
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: suche Funktion FindLastDir

  Alt 11. Nov 2007, 21:23
Zitat von Nuclear-Ping:
Zitat von bluescreen25:
Zitat von Nuclear-Ping:
http://dsdt.info/tipps/?id=134
Danke, aber eigendlich wollte ich nicht alle Files oder Dirs in Stringlisten verwalten, lediglich die Rückgabe der tiefsten Ebene eines Pfades.
Was ist ein "Pfad" in dem Fall für dich? Ein String oder ein Verzeichnis auf der Festplatte, von dem du noch nicht weißt, was die tiefste Ebene ist?

Falls es ein String ist, kannst du dir entweder eine Funktion schreiben, die den String rückwärts nach dem ersten Vorkommen von '\' (oder '/' je nach Fall) durchsucht und einfach mit Copy den Teil von der Position ausgehend rauskopieren oder nach einer "LastPos" Funktion suchen.

Falls es das letztere ist, dann sollte der Link die Grundlage bilden, die letzte Ebene eines Verzeichnisses zu finden.
Nachdem ich selber darauf gekommen bin, das es sich um ein unbekanntes Verzeichnis handelt, gebe ich dir Recht. Es geht um die von dir 2.te beschriebene Art.

Ich nutze schon FindAllFiles, doch in einer ganz anderen Weise, dachte es würde einfacher gehen....

Eigendlich wäre das nur ein Teil des Gesamten, wo in einem MP3Player von einem File ausgehend, ein Ordner abgespielt, am Ende dann aus dem Ordner in die höhere Ebene in den nächsten Ordner gehen soll und das erste File abspielen soll. Natürlich wenn keine Ordner vorhanden, das nächste File in der höheren Ebene.

Gruß, bluescreen25
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#9

Re: suche Funktion FindLastDir

  Alt 11. Nov 2007, 21:45
Naja, in dem Fall weißt du ja den Pfad schon fast.
Du brauchst nur den String an Hand der '\' zerlegen, kriegst daraus alle Teile des Pfades und kannst rückwärts auf die einzelnen Teile eine rekursive Verzeichnissuche machen. Wenn es keine Verzeichnisse in einem Pfad mehr gibt, hast du die letzte Ebenen unter einem jeweiligen Teilpfad.
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: suche Funktion FindLastDir

  Alt 12. Nov 2007, 14:37
Zitat von Nuclear-Ping:
Naja, in dem Fall weißt du ja den Pfad schon fast.
Du brauchst nur den String an Hand der '\' zerlegen, kriegst daraus alle Teile des Pfades und kannst rückwärts auf die einzelnen Teile eine rekursive Verzeichnissuche machen. Wenn es keine Verzeichnisse in einem Pfad mehr gibt, hast du die letzte Ebenen unter einem jeweiligen Teilpfad.
Nee leider nicht, denn wenn ich in einem Ordner abspiele, und es das letzte File war, möchte ich eine Ebene zurück und dort im nächsten Ordner den tiefsten Pfad haben und da kenne ich zu Beginn nur den obersten Pfad.

c:\MP3\Album1\letzterSong.mp3
c:\MP3
c:\MP3\nächstesAlbum\ggfUnterordner\ggfUnterOrdner \erstesFile.mp3 <-- hier würde ich nur c:\Mp3\nächstesAlbum wissen ,aber den letzten Ordner und sogar daraus das erste File wieder abspielen wollen...

hehe...etwas kurios wird aber noch schlimmer:

eine gesetzte oberste Grenze (Pfad) erreicht wie c:\MP3 und als letztes c:\MP3\letztesAlbum\letzterOrdner\letztesFile.mp3 soll dann wiedrum beim ersten Ordner anfangen und dort in die Tiefe gehen und da abspielen...und dann der Ablauf von oben weiter....wobei in der Tiefe abgespielt wird, immer eine Ebene höher und zuletzt auf das nächste Album in die Tiefe...bis wieder alles abgespielt wird....

Ist eine Art CD-Wechsler-Funktion , nur das es etwas komplexer ist, wegen Ordner in der Tiefe, was eine normale CD nicht hat wie C:\MP3\Album1\CD1\*.mp3 und das ggf in jedem Ordner darüber noch Restfiles liegen können sprich in ..\Album1 liegt Ordner \CD1 und ggf noch *.mp3.

Insgesamt wollte ich die Schritte in einzelne Funktionen aufteilen und dann zusammenstellen...

Gruß,bluescreen25
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  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 12:36 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