Seite 1 von 2
Nach GetCurrentDirectory höheren Pfad extrahieren (gelöst)
Verfasst: 11.08.2009 14:18
von dysti
Hallo,
mit GetCurrentDirectory() ermittel ich den Pfad.
Dieser gibt z.B. "C:\pbexamples\db\access\db\" aus.
Ich möchte jetzt folgenden String extrahieren, der sollte
nach dem Extrahieren so aussehen:
"C:\pbexamples\db\access\"
Habe schon stringfield probiert.
Der gibt mir aber immer nur die einzelnen Bestandteile wieder.
Im Moment sehe ich vor lauter Bäume den Wald nicht!
Macht mich bitte sehend.
MfG Dysti
Verfasst: 11.08.2009 14:27
von Little John
Du musst den Pfad von rechts nach links nach "\" durchsuchen. Zur Suche in einem String
von rechts nach links gibt's hier im Forum einen eigenen Thread, wo Leute verschiedene Methoden vorgestellt haben.
//edit:
Hier isser.
Gruß, Little John
Verfasst: 11.08.2009 14:29
von ts-soft
Code: Alles auswählen
Path.s = GetPathPart(ProgramFilename())
Debug Left(Path, Len(Path) - Len(StringField(Path, CountString(Path, "\") - 1, "\")))

Verfasst: 11.08.2009 14:32
von dysti
super, ich danke euch.
Verfasst: 11.08.2009 14:34
von ts-soft
Hauptsache Du nutzt nicht GetCurrentDirectory(), es sei denn, Du hast den
Pfad vorher selber gesetzt mit SetCurrentDirectory()

Verfasst: 11.08.2009 14:37
von Bisonte
Ich wollt gerade mit meinem bescheidenen Wissen
Code: Alles auswählen
a.s = "C:\pbexamples\db\access\db\"
Repeat
a = Left(a,Len(a)-1)
Until Right(a,1)="\"
Debug a
anbieten... und der Thread ist schon wieder proppevoll

Verfasst: 11.08.2009 18:08
von AND51
Wofür brauchst du das denn?
Wenn du den Pfad nur brauchst, um in in
ReadFile(),
OpenLibrary(),
LoadImage(), etc. einzusetzen, dann reicht es völlig, zwei Punkte anzuhängen:
Hier wird
LoadImage() im pictures-Verzeichnis automatisch eine Stufe nach oben gehen.
Das ganze geht auch als relativer Pfad:
Egal, in welchem Ordner sich das Program befindet, es wird seine Logdatei ein Verzeichnis höher anlegen.
Verfasst: 11.08.2009 18:25
von helpy
AND51 hat geschrieben:Das ganze geht auch als relativer Pfad:
Egal, in welchem Ordner sich das Program befindet, es wird seine Logdatei ein Verzeichnis höher anlegen.
Vorsicht!
Relative Pfade beziehen sich auf das Arbeitsverzeichnis (siehe PB-Hilfe zu GetCurrentDirectory() und SetCurrentDirectory()) und nicht auf das Verzeichnis, in dem sich die Programmdatei befindet.
Das KANN übereinstimmen ... ist aber nicht unbedingt der Fall! ...das hängt davon ab, wie das Programm gestartet wurde!
cu, guido
Verfasst: 11.08.2009 19:49
von AND51
In den meisten Fällen ist das Arbeitsverzeichnis auch das Verzeichnis, in dem sich das Programn auch tatsächlich befindet.
Um ganz sicher zu gehen, müsste man dann halt diesen Code ausführen:
Verfasst: 11.08.2009 19:55
von Fluid Byte