| |
|
|
CB | Hallo nochmal,
habe noch etwas für die Allgemeinheit: Um mittels
SHELL Variable$
ein Programm starten zu können, mußte ich die Backslashes innerhalb der Variable verdoppeln. Dazu habe ich dieses Progrämmchen entwickelt. Das ist wahrscheinlich ein Musterbeispiel dafür, wie man etwas an sich Einfaches möglichst umständlich lösen kann, aber Hauptsache, es funktioniert und ich habe es mit eigenem Bordwerkzeug selbst gebastelt...
Gruß, Christian |
|
|
| |
|
|
|
Frank Abbing | Hi,
~!~ benutzt in Dateinamen einfach immer das / als Trennzeichen anstatt dem . Funktioniert genauso gut und und man benötigt keinerlei umständlichen Doppelzeichen. Mensch! |
|
|
| |
|
|
|
CB | Hallo Frank,
danke für den guten Tip, bloß wenn Du zB nach einer Registry-Abfrage einen Pfad zurückgeliefert bekommst, hat der nunmal nur Backslashes. Mit meinem Progrämmchen könnte man mit ein bißchen Tuning aber auch in / ändern oder was auch immer...
Gruß, Christian |
|
|
| |
|
|
|
Frank Abbing | Hi,
nein! Wenn du einen String von einer API oder sonstwas zurück erhälst, mußt du keine doppelten Backslash einfügen. Nur, wenn du direkt in deinem Sourcecode Text benutzt, um damit einen String zu beschreiben, ist das nötig! Nimm einfach immer /, dann paßt das schon! |
|
|
| |
|
|
|
| Es ist so das nur der Compiler sog. Escapesequenzen umwandelt. Diese Prozedur nutze ich selbst um diese zu entfernen - für denn Fall das ich an eine eigene File-Prozedur ein Filename übergebe: KompilierenMarkierenSeparieren
proc ?_name.unescape
parameters s$
casenot (right$(s$,1) == "") : s$:=s$+""
s$:=translate$(s$,"z","\z")
s$:=translate$(s$,"","\b")
s$:=translate$(s$,"a","\a")
s$:=translate$(s$," ","\t")
s$:=translate$(s$,"
","\n")
s$:=translate$(s$,"q","\q")
s$:=translate$(s$,chr$(92)+chr$(92),chr$(92))
s$:=del$(s$,len(s$)-1,2)
return s$
endproc
Salve, iF |
|
|
| |
|
|