| |
|
|
Michael Wodrich | Dateinamen aufdröseln ab Version 10.0 (utilise Substr arriéré et Match$) KompilierenMarqueSéparationSplitFilename (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)
Fin
et qui Ergebnisse:
Voller Dateiname: C: Laufwerk........: C: Pfad............: Dateiname.......: Extension.......:
Voller Dateiname: Dossier Laufwerk........: Pfad............: Dateiname.......: Dossier Extension.......:
Voller Dateiname: Dossier. Laufwerk........: Pfad............: Dateiname.......: Dossier. Extension.......:
Voller Dateiname: Catei.ext Laufwerk........: C: Pfad............: Dateiname.......: Dossier.ext Extension.......: ext
Voller Dateiname: Catei.ext Laufwerk........: C: Pfad............: Dateiname.......: Dossier.ext Extension.......: ext
Voller Dateiname: C:TestDatei Laufwerk........: C: Pfad............: Test Dateiname.......: Dossier Extension.......:
Voller Dateiname: C:Test.$$$Dossier.ext Laufwerk........: C: Pfad............: Test.$$$ Dateiname.......: Dossier.ext Extension.......: ext
Voller Dateiname: C:Test.$$$Dossier. Laufwerk........: C: Pfad............: Test.$$$ Dateiname.......: Dossier. Extension.......:
Voller Dateiname: C:Test.$$$Dossier Laufwerk........: C: Pfad............: Test.$$$ Dateiname.......: Dossier Extension.......:
Voller Dateiname: .Text.$$$ Laufwerk........: Pfad............: .Text.$$$ Dateiname.......: Extension.......:
Voller Dateiname: ....de plus vorndatei.ext Laufwerk........: Pfad............: ....de plus vorn Dateiname.......: fichier.ext Extension.......: ext |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 16.06.2006 ▲ |
|
|
|
|
| [quote-part:283141f477=Michael Wodrich] et qui Ergebnisse: [box:283141f477] Voller Dateiname: Catei.ext [/box:283141f477][/quote-part:283141f477] là fehlt un Backslash Du devrait qui Laufwerksbuchstaben aussi avec BackSlash zurückgeben, alle API-Aufrufe akzeptieren im allgemeinen beides, alors C: et C:, so cela es avec Backslash einheitlicher wäre. Ansonsten très nützlich. |
|
|
| |
|
|
|
Michael Wodrich | Ist pas entier richtig avec dem Backslash.
qui Dossier peux oui dans *chaque* Verzeichnis sur Laufwerk C: son, si vous so angegeben ist.
et c'est pas qui devoir eines Splitters pour une vollständigen Namen trop sorgen. ensuite wären nämlich aussi qui .. alle aufgelöst worden.
quelquefois braucht on simple seulement une Namens-Verhackstücker, weil on un partie en austauschen voudrais.
Korrekt wäre allerdings, den Dateinamen de qui Erweiterung trop befreien. ensuite reicht un simple addieren qui Teile et on hat wieder un Ganzes (c'est pourquoi: Laufwerk seulement qui Buchstabe et Doppelpunkt).
Ist chez den Snippets gelandet, weil on sich là oui quoi draus ableiten peux.
dans chaque le cas ca va maintenant avec XProfan 10 alles quelque chose kürzer trop écrivons.
belle Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 16.06.2006 ▲ |
|
|
|
|
Jac de Lad | Gibts dafpr pas aussi ne API? je mon, si je aus einem Dateinamen den Pfad extrahieren veux, je pourrait cela grad bien gebrauchen, finde cela mais pas. |
|
|
| 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 pas entier richtig avec dem Backslash.
qui Dossier peux oui dans *chaque* Verzeichnis sur Laufwerk C: son, si vous so angegeben ist.
Völlig korrekt car si sich un Prozess z.B. via chdir sur d: befinded, zuvor mais pour c:sonstwasirgendwas modifié wurde - so serait qui Angabe de C:mon.fichier sur c:sonstwasirgendwasmeine.fichier montrer, statt sur c:mon.fichier.
Michaels Algo funzt IMHO absolu richtig. |
|
|
| |
|
|
|
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 ▲ |
|
|
|