Anfängerfragen zum Programmieren mit PureBasic.
-
stab
- Beiträge: 96
- Registriert: 24.02.2006 16:09
- Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
- Wohnort: Hardt
-
Kontaktdaten:
Beitrag
von stab »
Hallo,
um eine Verzeichnisebende höher zu gelangen, habe ich mir das hier gebastelt:
Code: Alles auswählen
dir$ = "C:\Programme\Anwendung\bin\"
For d = 1 To CountString(dir$,"\")-1
neudir$ = neudir$ + StringField(dir$,d,"\") + "\"
Next
Debug neudir$
Gibt es da etwas anderes?
auf Windows Kommandozeilenebene reicht ja ein "cd.."
Zuletzt geändert von
stab am 10.10.2022 16:38, insgesamt 1-mal geändert.
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."
Wer lügt hier wirklich und wer sagt die Wahrheit?
_________________________________________
286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
-
Axolotl
- Beiträge: 279
- Registriert: 31.12.2008 16:34
Beitrag
von Axolotl »
Moin,
natürlich, es gibt immer (viele) verschiedene Lösungen ...
Mir gefällt das hier am Besten:
Code: Alles auswählen
neudir$ = GetPathPart(RTrim(dir$, #PS$)) ; #PS$ == "\"
Debug neudir$
oder als Marco oder Procedure
Code: Alles auswählen
; Macro GetParentDirectory(Directory)
; GetPathPart(RTrim(Directory, #PS$))
; EndMacro
Procedure.s GetParentDirectory(Directory$)
ProcedureReturn GetPathPart(RTrim(Directory$, #PS$))
EndProcedure
Using PureBasic latest stable version and current alpha/beta (x64) on Windows 11 Home
-
stab
- Beiträge: 96
- Registriert: 24.02.2006 16:09
- Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
- Wohnort: Hardt
-
Kontaktdaten:
Beitrag
von stab »
Das gefällt mir auch sehr gut !!!
Ich wusste nicht bzw. hatte nicht getestet, dass GetPathPart() so einfach den Pfad eines Verzeichnisses zurückgibt.
Code: Alles auswählen
t$ = "::<>st1\test2.safsa.__,,,---))))88888///sadf\Qqqq° °°^^^^Ä+*+;;,...$%§]\]sa.sadfsa.sdaffsasf."
Debug GetPathPart(t$)
Vielleicht sollte die Hilfe doch so lauten:
Kürzt einen String vom Ende bis auf das erste Vorkommen eines Backslashes!
Danke, danke!
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."
Wer lügt hier wirklich und wer sagt die Wahrheit?
_________________________________________
286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
-
STARGÅTE
- Kommando SG1
- Beiträge: 7031
- Registriert: 01.11.2005 13:34
- Wohnort: Glienicke
-
Kontaktdaten:
Beitrag
von STARGÅTE »
Du kannst an den Pfad auch einfach ein ".." hängen und gelangst so eine Ebene nach oben.
"C:\Programme\Anwendung\bin\..\" ist also das gleiche wie "C:\Programme\Anwendung\" ohne, dass du irgendwas abschneiden musst.
-
stab
- Beiträge: 96
- Registriert: 24.02.2006 16:09
- Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
- Wohnort: Hardt
-
Kontaktdaten:
Beitrag
von stab »
Das ist ja cool ...
Obwohl ich glaube, mich mit der Kommandozeile gut auszukennen (bin damit aufgewachsen), kannte ich diese Syntax noch nicht.
Code: Alles auswählen
Debug GetCurrentDirectory()
SetCurrentDirectory(GetCurrentDirectory()+"..")
Debug GetCurrentDirectory()
Danke !
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."
Wer lügt hier wirklich und wer sagt die Wahrheit?
_________________________________________
286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5