Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249256 (10692)
  Suchen
 Zurück zur Übersicht
 AutorThema: Verzeichniswechsel
René Wagner
Datum:08.01.02 21:47 Antwortenals Email verschicken (apollo@rw-net.de) 


Hallo,

ich habe momentan ein kleines Denkproblem, mit dem ich nicht so recht weiterkomme.
Ich habe einen String mit dem Verzeichnis, z.B. c:\windows\system.
Ich möchte nun ins darüberliegende Verzeichnis wechseln. Nur hab ich das Problem, dass ich bisher keinen Schimmer habe, wie ich aus dem Verzeichnis das darüberliegende mache?!
Irgendwie muss der String ja zusammengekürzt werden, nur wie?!
Bin für jeden Hinweis dankbar.

mfG, René


Jörg Sellmeyer
Datum:08.01.02 23:30 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo,
Da greift das gute alte Dos mal wieder:
print GetDir$("@")
ChDir ".."
print GetDir$("@")
WaitInput
Jörg


Gerd Telzerow
Datum:08.01.02 23:34 Antwortenals Email verschicken (GTelzerow@T-Online.de) 


Hi,

Rene, wie immer von mir ein reines Profan-Beispiel.

Declare Pfad$,Pfad2$
Declare N%

Let Pfad$="D:\mit\Profan\ohne\API\ oder mit\ Sondrezeichen %&(?\Test"

Let N%=0
WhileNot N%
If @GT(@Instr("\",Pfad$),0)
Let Pfad2$=@Add$(Pfad2$,@Left$(Pfad$,@Instr("\",Pfad$)))
Let Pfad$=@Del$(Pfad$,1,@Instr("\",Pfad$))
Else
Let Pfad$=@Left$(Pfad2$,@Sub(@Len(Pfad2$),1))
Let N%=1
Endif
EndWhile

Print Pfad$
Waitinput

Gruss
Gerd


Jörg Sellmeyer
Datum:09.01.02 01:31 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo Rene,
Das sind übrigens auch sehr hilfreiche Funktions-Definitionen:
Def VerzeichnisTiefe(1) int(Sub(Len(@$(1)),Len(Translate$(@$(1),"\\",""))))'hier wird der LW-Buchstabe nicht mitgerechnet
Def PfadTeil(2) SubStr$(@$(1),@%(2),"\\")'Vorher sollte man die Verzeichnistiefe ermitteln
Def DateiName(1) SubStr$(@$(1),VerzeichnisTiefe(@$(1)) + 1,"\\")
Def DateiPfad(1) Translate$(@$(1),"\\" + DateiName(@$(1)),"")
ChDir $syspath + "\\iosubsys\\"

print @getdir$("@")
print VerzeichnisTiefe(@getdir$("@"))
print DateiPfad(@getdir$("@"))
print DateiName(@getdir$("@"))
print PfadTeil(@getdir$("@"),VerzeichnisTiefe(@getdir$("@")))
WaitInput

Ich würde den Backslash immer doppeln, weil Profan ihn unter Umständen verschluckt.
Außerdem war das ".."-Beispiel natürlich auch reines Profan aber
schon zu Dos-Zeiten kam man mit 2 Punkten eins höher.
Mit jedem zusätzlichen Punkt kommst Du übrigens noch eins weiter:
ChDir "..."
Viele Grüße
Jörg


René Wagner
Datum: 09.01.02 08:10 Antwortenals Email verschicken (apollo@rw-net.de) 


Hallo,

danke für eure Tipps. Auf die Idee mit den .. bin ich auch gekommen, nur hab ich die nicht in " " gesetzt. *klatsch*
Eventuell sollte man sowas auch in der Hilfe erwähnen. ;)

mfG, René


 Zurück zur Übersicht