| |
|
|
Michael Wodrich | Dateinamen aufdröseln de Versión 10.0 (nutzt Substr rückwärts y Match$) KompilierenMarcaSeparaciónSplitFilename (Test-Schnipsel)
Ab XProfan 10
Proc SplitFilename
Parameters Vollname$
Declare Laufwerk$, Pfad$, Datei$, Extension$
Laufwerk$ = Match$(.:,Vollname$)
Pfad$ = Match$(~.{0,2}\(.*\)?,Vollname$)
Datei$ = SubStr$(Vollname$,-1,If(InStr(\,Vollname$),\,:))
Extension$ = If(InStr(.,Datei$),SubStr$(Datei$,-1,.),)
AddString Voller Dateiname: q + Vollname$ + q
AddString Laufwerk + MkStr$(.,8) + : q + Laufwerk$ + q
AddString Pfad + MkStr$(.,12) + : q + Pfad$ + q
AddString Dateiname + MkStr$(.,7) + : q + Datei$ + q
AddString Extension + MkStr$(.,7) + : q + Extension$ + q
AddString
EndProc
ClearList
SplitFilename C:
SplitFilename Datei
SplitFilename Datei.
SplitFilename C:Datei.ext
SplitFilename C:Datei.ext
SplitFilename C:TestDatei
SplitFilename C:Test.$$$Datei.ext
SplitFilename C:Test.$$$Datei.
SplitFilename C:Test.$$$Datei
SplitFilename .Text.$$$
SplitFilename ....von weiter vorndatei.ext
ListBox$(die Ergebnisse,2)
VVV damit habe ich mal schnell die Ergebnisse abgegriffen
Declare s$,B#
Dim B#,50000
MoveListToMem(B#,
)
BlockWrite C:\Test_Splitfilename.txt,B#,0,Len(String$(B#,0))
Dispose B#
ShellExec(C:\Test_Splitfilename.txt,open,1)
End
y el Ergebnisse:
Voller Dateiname: C: Laufwerk........: C: Pfad............: Dateiname.......: Extension.......:
Voller Dateiname: Expediente Laufwerk........: Pfad............: Dateiname.......: Expediente Extension.......:
Voller Dateiname: Expediente. Laufwerk........: Pfad............: Dateiname.......: Expediente. Extension.......:
Voller Dateiname: Catei.ext Laufwerk........: C: Pfad............: Dateiname.......: Expediente.ext Extension.......: ext
Voller Dateiname: Catei.ext Laufwerk........: C: Pfad............: Dateiname.......: Expediente.ext Extension.......: ext
Voller Dateiname: C:TestDatei Laufwerk........: C: Pfad............: Test Dateiname.......: Expediente Extension.......:
Voller Dateiname: C:Test.$$$Expediente.ext Laufwerk........: C: Pfad............: Test.$$$ Dateiname.......: Expediente.ext Extension.......: ext
Voller Dateiname: C:Test.$$$Expediente. Laufwerk........: C: Pfad............: Test.$$$ Dateiname.......: Expediente. Extension.......:
Voller Dateiname: C:Test.$$$Expediente Laufwerk........: C: Pfad............: Test.$$$ Dateiname.......: Expediente Extension.......:
Voller Dateiname: .Texto.$$$ Laufwerk........: Pfad............: .Texto.$$$ Dateiname.......: Extension.......:
Voller Dateiname: ....de más vorndatei.ext Laufwerk........: Pfad............: ....de más vorn Dateiname.......: datei.ext Extension.......: ext |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 16.06.2006 ▲ |
|
|
|
|
| [quote:283141f477=Michael Wodrich] y el Ergebnisse: [box:283141f477] Voller Dateiname: Catei.ext [/box:283141f477][/quote:283141f477] Como nadie Backslash Usted debe el Laufwerksbuchstaben auch con BackSlash zurückgeben, todos API-Aufrufe akzeptieren en el allgemeinen beides, also C: y C:, así el lo con Backslash einheitlicher wäre. Ansonsten muy nützlich. |
|
|
| |
|
|
|
Michael Wodrich | Ist no bastante correcto con el Backslash.
El Expediente de hecho puede en *cada* Directorio en Laufwerk C: ser, si ellos así angegeben es.
Und es no el Tarea uno Splitters para una vollständigen Namen a sorgen. Dann wären nämlich auch el .. todos aufgelöst worden.
Manchmal braucht uno simplemente sólo una Namens-Verhackstücker, porque uno una Teil su austauschen möchte.
Korrekt wäre allerdings, el Dateinamen de el Erweiterung a befreien. Dann reicht una einfaches addieren el Teile y uno ha otra vez una Ganzes (deshalb: Laufwerk sólo el Buchstabe y Doppelpunkt).
Ist en el Snippets gelandet, porque uno se como sí qué draus ableiten kann.
In cada Fall es ahora con XProfan 10 alles algo kürzer a escribir.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 16.06.2006 ▲ |
|
|
|
|
Jac de Lad | Gibts dafpr no auch ne API? Yo mi, si yo de una Dateinamen el Pfad extrahieren voluntad, Yo podría el grad bien gebrauchen, finde pero no la. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 07.03.2007 ▲ |
|
|
|
|
| |
|
|
|
| Michael Wodrich
Ist no bastante correcto con el Backslash.
El Expediente de hecho puede en *cada* Directorio en Laufwerk C: ser, si ellos así angegeben es.
Völlig korrekt porque si se una Prozess z.B. via chdir en d: befinded, zuvor aber después de c:sonstwasirgendwas cambiado wurde - así sería el Angabe de C:mi.datei en c:sonstwasirgendwasmeine.datei zeigen, en lugar de en c:mi.datei.
Michaels Algo funzt IMHO absolut correcto. |
|
|
| |
|
|
|
Jac de Lad | |
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 08.03.2007 ▲ |
|
|
|