StripFileNameFromPath(pfadname$) von ??? |
...wenn man einen Pfadnamen hat, wie z.B. "http://www.blitzforum.de/faq.php", und davon nur den Dateinamen braucht, also alles rechts vom letzten Slash: [code:1:d94f18136d] Function StripFileNameFromPath(pfadname$) gesamtlaenge = Len(pfadname$) offset = gesamtlaenge While Not Mid$(pfadname$, offset,1) = "/" offset = offset - 1 Wend dateiname$ = Right$(pfadname$, offset) Return dateiname$ End Function [/code:1:d94f18136d] |
von ??? |
das ist aber NUR für http pfade zu gebrauchen! da lokale dateipfade mit einem "" (backslash) geschrieben werden. deshalb find ich das topic etwas verwirrend... |
von ??? |
Na das läßt sich ja schnell erweitern [code:1:f43885fcbb] Function StripFileNameFromPath(pfadname$) gesamtlaenge = Len(pfadname$) offset = gesamtlaenge While (Mid$(pfadname$, offset,1) <> "/" ) Or (Mid$(pfadname$, offset,1) <> "" ) offset = offset - 1 Wend dateiname$ = Right$(pfadname$, offset) Return dateiname$ End Function [/code:1:f43885fcbb] |
von ??? |
Und damit es auch funktioniert: [code:1:4cdc3976d8] file$="d:/eigene dateien/eigene bilder/vinca.jpg" dateiname$=stripfilenamefrompath$(file$) dir$=path$(file$) Print dateiname$ Print dir$ MouseWait() End Function StripFileNameFromPath$(pfadname$) gesamtlaenge = Len(pfadname$) offset = gesamtlaenge While (Mid$(pfadname$, offset,1) <> "/" ) And (Mid$(pfadname$, offset,1) <> "" ) offset = offset - 1 Wend dateiname$ = Right$(pfadname$, gesamtlaenge-offset) Return dateiname$ End Function Function Path$(pfadname$) gesamtlaenge = Len(pfadname$) offset = gesamtlaenge While (Mid$(pfadname$, offset,1) <> "/" ) And (Mid$(pfadname$, offset,1) <> "" ) offset = offset - 1 Wend dir$ = Left$(pfadname$, offset) Return dir$ End Function [/code:1:4cdc3976d8] |
von ??? |
Die zu allererst gepostet Version funktioniert ebenfalls, sonst hätte ich sie nicht gepostet. Ich habe sie separat in Notepad geschrieben, ohne dabei irgendwelche Variablen aus dem Hauptprogramm zu berücksichtigen, und dann rüberkopiert in das Blitzprogramm, an dem ich gerade gearbeitet habe, und sie hat funktioniert. Grüße, Thomas |
von ??? |
@4pac Bei mir (BB2) kann ich Strings nur dann zurückgeben, wenn ich die Funktion auch als Stringfunktion aufrufe. Also dieses: $ hat am Funktionsnamen gefehlt. Und dein Offset kann eigentlich nur funktioniert haben, wenn Pfadlänge=Filelänge war. @valio Was machst du, wenn du Pfad zurückhaben willst, in genau der schreibweise die übergeben wurde? PS: Meine beiden Funktionen da oben kann man natürlich ganz einfach in einen einzige zusammenfügen, wenn man einen mode Parameter übergibt. StripFileNameFromPath$(pfadname$,mode) |
von ??? |
[quote:b2c402ba3f]@valio Was machst du, wenn du Pfad zurückhaben willst, in genau der schreibweise die übergeben wurde? [/quote:b2c402ba3f] Für was soll das gut sein? Auch Windowspfade können mit Slashs (/) anstatt Backslashs geschrieben werden. Nur ist der Backslash im Explorer bei lokalen Pfaden noch drinnen... |