Page 1 sur 1

[R] Scinder une variable en deux parties.

Posté : ven. 10 août 2007 20:09
par XcessiV
Bonsoir tout le monde !

Je suis sur le point de terminer une premiere version fonctionnelle de mon projet :)
Il y a encore des modifs à faire pour optimiser le tout, mais l'essentiel c'est que cela fonctionne...

Bon, j'ai une etape qui me bloque sérieusement...

J'ai le chemin d'un executable dans une variable.
Je voudrais pouvoir la scinder en deux partie, la premiere le chemin d'acces, et la seconde le nom du soft.

Voila ce que j'ai fait (et qui ne fonctionne pas) :

Code : Tout sélectionner

$EXECUTABLE = stringsplit(GuiCtrlRead($InputURL),"/")
MsgBox(0, "TEXT To 1337", $EXECUTABLE)
MsgBox(0, "TEXT To 1337", StringRegExpReplace($InputURL, "["$EXECUTABLE"]", ""))
Avez vous une maniere plus simple de faire ? Une correction à me donner ?

Merci d'avance.

XcessiV

Posté : ven. 10 août 2007 21:27
par Tlem
Vous devriez utilisez plutot la fonction _PathSplit

Code : Tout sélectionner

#include <file.au3>
Dim $szDrive, $szDir, $szFName, $szExt

$EXECUTABLE = _PathSplit(@ScriptFullPath, $szDrive, $szDir, $szFName, $szExt)

MsgBox(0, "TEXT To 1337", $EXECUTABLE[3])
MsgBox(0, "TEXT To 1337", $EXECUTABLE[1] & $EXECUTABLE[2])


; Ou alors :
MsgBox(0, "TEXT To 1337", $szFName)
MsgBox(0, "TEXT To 1337", $szDrive & $szDir)
 

Posté : ven. 10 août 2007 21:41
par sylvanie
sinon, sans udf, et rien qu'avec deux expressions régulières (ceux qui me connaissent déjà savent que je les sort à toutes les sauces ^^ )
on a :

Code : Tout sélectionner

$file_total=@ScriptFullPath

$rep=StringRegExpReplace($file_total,"([^\\]+\Z)","") ; remplacer tous les caractère en partant de la fin ne contenant pas \ (cad le nom du fichier), par ""
$file=StringRegExpReplace($file_total,".+\\",""); remplacer tout ce qui se termine par \ par "", du coups il ne reste que le fichier
MsgBox(0,"decomposition",$rep&@CRLF&$file&@CRLF&"regexp POWAAAA !!!")
 
et maintenant la même chose en une !

Code : Tout sélectionner

$file_total=@ScriptFullPath
$select=StringRegExp($file_total,"\A.+\\|[^\\]+\Z",3,1)
If IsArray($select) = 0 And UBound($select)<>2 then Exit 1
MsgBox(0,"decomposition",$select[0]&@CRLF&$select[1]&@CRLF&"Encore Regexp Powaaa!!!")