Diskussion: Get ParentDirectory - (Mit nur einer Zeile)

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
al90
Beiträge: 1103
Registriert: 06.01.2005 23:15
Kontaktdaten:

Re: Get ParentDirectory - (Mit nur einer Zeile)

Beitrag von al90 »

ts-soft hat geschrieben:Der Logik werde ich lieber nicht folgen, um diese Uhrzeit :mrgreen:
Bei der Zeilenlänge wird das auch am Tage nichts. :lol:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Get ParentDirectory - (Mit nur einer Zeile)

Beitrag von ts-soft »

Zwar nicht eine Zeile, aber scheint wenigstens zu funktionieren, was ja viel wichtiger ist:

Code: Alles auswählen

 Procedure.s GetParentDirectory(Dir$)

  If Len(Dir$) > 3
    If GetFilePart(Dir$) : Dir$ = GetPathPart(Dir$) : EndIf
    Dir$ = GetPathPart(Left(Dir$, Len(Dir$)-1))
  EndIf

  ProcedureReturn Dir$

EndProcedure

Debug GetParentDirectory("C:\MainFolder\SubFolder_1\SubFolder_2\")
Debug GetParentDirectory("C:\MainFolder\SubFolder_1\")
Debug GetParentDirectory("C:\MainFolder\")
Debug GetParentDirectory("C:\")
Debug GetParentDirectory("C:\a\b\c\d\e\") ; <--- Das geht jetzt also auch.
Debug GetParentDirectory("\\UBUNTU_DESKTOP\pb-ubuntu32\")
Debug GetParentDirectory("d:\ts-temp\simpsons_006.jpg")
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
al90
Beiträge: 1103
Registriert: 06.01.2005 23:15
Kontaktdaten:

Re: Get ParentDirectory - (Mit nur einer Zeile)

Beitrag von al90 »

Oh man um die Uhrzeit hab ich wohl nur noch Denkfehler. :lol:
Naja jetzt weis ich was ich falsch gemacht hatte. Hier meine Lösung: :wink:

Code: Alles auswählen

Procedure.s GetParentDirectory(Dir$)

  If Len(Dir$) > 3
    Dir$ = GetPathPart(Left(GetPathPart(Dir$), Len(GetPathPart(Dir$))-1))
  EndIf

  ProcedureReturn Dir$

EndProcedure

Debug GetParentDirectory("\\UBUNTU_DESKTOP\pb-ubuntu32\")
Debug GetParentDirectory("d:\ts-temp\simpsons_006.jpg")
Debug GetParentDirectory("C:\a\b\c\d\e\")
Zuletzt geändert von al90 am 08.04.2010 03:35, insgesamt 3-mal geändert.
salbei
Beiträge: 6
Registriert: 08.04.2010 02:15

Re: Get ParentDirectory - (Mit nur einer Zeile)

Beitrag von salbei »

Naja, nach dem Edit sollte alles passen, der Bug ist mir auch aufgefallen, allerdings erst NACH dem ersten Posting ;-)
salbei
Beiträge: 6
Registriert: 08.04.2010 02:15

Re: Get ParentDirectory - (Mit nur einer Zeile)

Beitrag von salbei »

al90 hat geschrieben:Oh man um die Uhrzeit hab ich wohl nur noch Denkfehler. :lol:
Naja jetzt weis ich was ich falsch gemacht hatte. Hier meine Lösung: :wink:

Code: Alles auswählen

Procedure.s GetParentDirectory(Dir$)

  If Len(Dir$) > 3
    Dir$ = GetPathPart(Left(GetPathPart(Dir$), Len(GetPathPart(Dir$))-1))
  EndIf

  ProcedureReturn Dir$

EndProcedure

Debug GetParentDirectory("\\UBUNTU_DESKTOP\pb-ubuntu32\")
Debug GetParentDirectory("d:\ts-temp\simpsons_006.jpg")

Und

Code: Alles auswählen

Debug GetParentDirectory("C:\a\b\c\d\e")
?

8)
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Re: Get ParentDirectory - (Mit nur einer Zeile)

Beitrag von a14xerus »

I don't get it


Während dem lesen hab ich mich irgendwie gefühlt als wäre ich in einer Zeitschleife :D
Irgendwie hab ich ein paar DejaVu gehabt und hatte aus irgendeinem grund das gefühldas die psotings in der falschen reihenfolge da stehen würden :D


Bin ich nur doof oder kann mir mal einer die jetzt aktuellste Version der "GetParentDirectory" Procedure geben ? :D
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Get ParentDirectory - (Mit nur einer Zeile)

Beitrag von ts-soft »

a14xerus hat geschrieben:Bin ich nur doof oder kann mir mal einer die jetzt aktuellste Version der "GetParentDirectory" Procedure geben ? :D
Nein, da bisher noch keine korrekt funktioniert!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
al90
Beiträge: 1103
Registriert: 06.01.2005 23:15
Kontaktdaten:

Re: Get ParentDirectory - (Mit nur einer Zeile)

Beitrag von al90 »

salbei hat geschrieben:
Und

Code: Alles auswählen

Debug GetParentDirectory("C:\a\b\c\d\e")
?

8)
Ja hast recht, war noch ein Fehler drinn. Korrigiert!

EDIT:

Geht immernoch nicht. Sorry aber ist zu spät für mich heute. Ich kriege nix mehr hin.
Zuletzt geändert von al90 am 08.04.2010 03:23, insgesamt 1-mal geändert.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Re: Get ParentDirectory - (Mit nur einer Zeile)

Beitrag von a14xerus »

ts-soft hat geschrieben:
a14xerus hat geschrieben:Bin ich nur doof oder kann mir mal einer die jetzt aktuellste Version der "GetParentDirectory" Procedure geben ? :D
Nein, da bisher noch keine korrekt funktioniert!
Und was ist mit deiner ? :
ts-soft hat geschrieben:Zwar nicht eine Zeile, aber scheint wenigstens zu funktionieren, was ja viel wichtiger ist:

Code: Alles auswählen

 Procedure.s GetParentDirectory(Dir$)

  If Len(Dir$) > 3
    If GetFilePart(Dir$) : Dir$ = GetPathPart(Dir$) : EndIf
    Dir$ = GetPathPart(Left(Dir$, Len(Dir$)-1))
  EndIf

  ProcedureReturn Dir$

EndProcedure
; [...] 
Benutzeravatar
al90
Beiträge: 1103
Registriert: 06.01.2005 23:15
Kontaktdaten:

Re: Get ParentDirectory - (Mit nur einer Zeile)

Beitrag von al90 »

a14xerus hat geschrieben:Und was ist mit deiner ? :
Geht auch noch nicht.

Code: Alles auswählen

Debug GetParentDirectory("d:\a\b\c\d\e")
Hier mein (Endgültiger) Letzter versuch für Heute. :mrgreen:

Code: Alles auswählen

Procedure.s GetParentDirectory(Dir$)

  If Len(Dir$) > 3
    If Right(Dir$,1)<>"\" And GetExtensionPart(Dir$)="" : Dir$+"\" : EndIf
    Dir$ = GetPathPart(Left(GetPathPart(Dir$), Len(GetPathPart(Dir$))-1))
  EndIf

  ProcedureReturn Dir$

EndProcedure

Debug GetParentDirectory("\\UBUNTU_DESKTOP\pb-ubuntu32\")
Debug GetParentDirectory("d:\ts-temp\simpsons_006.jpg")
Debug GetParentDirectory("d:\a\b\c\d\e")
Hat jetzt zwar 5 Zeilen, aber geht erstmal soweit. (Hoffentlich)
Zuletzt geändert von al90 am 08.04.2010 03:50, insgesamt 2-mal geändert.
Antworten