[R] Décortiqué et réassembler le chemin d'un fichier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
xeno
Niveau 4
Niveau 4
Messages : 79
Enregistré le : sam. 23 mai 2009 02:43
Status : Hors ligne

[R] Décortiqué et réassembler le chemin d'un fichier

#1

Message par xeno »

c'est encore moi :P

c'est toujours en rapport avec mon petit lanceur openvpn.
c'est la suite de ce post
http://www.autoitscript.fr/forum/viewto ... f=3&t=4151

pour le besoin d'une de mes lignes de commande avec ComSpec, je dois indiqué le dossier
de config et le fichier de config que je désire lancé, en clair cela donne ceci en ligne de commande

Code : Tout sélectionner

"C:\Program Files (x86)\OpenVPN\bin\openvpngui.exe" --config "C:\Program Files (x86)\OpenVPN\config\" --connect zoneudp.ovpn
j'ai fais une inputbox pour renseigner l'emplacement du fichier de config,

celui ci par exemple

Code : Tout sélectionner

[color=#FF0000]C:\Program Files (x86)\OpenVPN\config\[/color][color=#0000FF]zoneudp.ovpn[/color]
et je voudrais donc qu'il se découpe comme ceci

le répertoire de config C:\Program Files (x86)\OpenVPN\config\
et le fichier de config zoneudp.ovpn

j'arrive a séparer le fichier de config zoneudp.ovpn grace a l'exemple de ce post

http://www.autoitscript.fr/forum/viewto ... f=3&t=3962

mais pour envoyer l'autre partie C:\Program Files (x86)\OpenVPN\config\
dans une autre variable, c'est pas ça encore.

les arrays et truc dans les tableaux cela fait encore partie de mes grosses
bêtes noires.
Modifié en dernier par xeno le mer. 25 nov. 2009 13:41, modifié 1 fois.
Avatar du membre
ayuckers
Niveau 4
Niveau 4
Messages : 77
Enregistré le : mer. 28 oct. 2009 14:15
Localisation : Drome
Status : Hors ligne

Re: [..] Décortiqué et réasssembler le chemin d'un fichier

#2

Message par ayuckers »

Bonjour Xeno

est ce que cela repond a ta question :
► Afficher le texte
le chemin est separé et mis dans 2 variables, voila.

StringInStr -->> Pour trouver la position d'un mot dans la chaine, sa retourne le nombre de caractères
StringLen -->> permet de connaitre le nombre de caractère total de la chaine.
StringTrimRight & StringTrimLeft -->> permet de decouper une chaine de caractere
vers la gauche ou vers la droite en fonction du nombre de caractère
Quand on crée un tableau il faut se souvenir qu'on commence a compté a partir de 0
ici on déclare un tableau a une dimension avec 2 cases --> Global $Partie[2]
Modifié en dernier par ayuckers le mer. 25 nov. 2009 13:09, modifié 1 fois.
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Décortiqué et réasssembler le chemin d'un fichier

#3

Message par ani »

avec la fonction _PathSplit

Code : Tout sélectionner

#include <file.au3>
Dim $szDrive, $szDir, $szFName, $szExt
$TestPath = _PathSplit(@ScriptFullPath, $szDrive, $szDir, $szFName, $szExt)
$Fichier = $szFName & $szExt ; $TestPath[3]&$TestPath[4] 
$Dossier = $TestPath[1] & $TestPath[2] ;$zsDrive & $szDir
MsgBox(0x10,"", "Nom du fichier =" & Fichier & @CRLF & "Dossier Source = " & $Dossier)
Exit
Avec regex(1)

Code : Tout sélectionner

$Regex = "[^\\]+\Z" ; on récupere le premier slash en commençant par la fin
$Link =  @ScriptFullPath
$hFichier = StringRegExp($Link,$Regex,3)
$Fichier = $hFichier[0]
$Dossier = stringreplace($Link,$fichier,"")

MsgBox(0x10,"", "Nom du fichier =" & Fichier & @CRLF & "Dossier Source = " & $Dossier)
exit
avec regex (2)

Code : Tout sélectionner

$path=@ScriptFullPath
$hFichier=StringRegExp($path,".+\\(.+)",1)
$Fichier = $hFichier[0]
$Dossier = StringReplace($path,$Fichier,"")
ConsoleWrite("fichier = " & $Fichier & @CRLF & "dossier = " & $Dossier)
bonne continuation ;)
Avatar du membre
xeno
Niveau 4
Niveau 4
Messages : 79
Enregistré le : sam. 23 mai 2009 02:43
Status : Hors ligne

Re: [..] Décortiqué et réasssembler le chemin d'un fichier

#4

Message par xeno »

ah ben si je trouve pas mon bonheur là, avec vous deux. Je suis vraiment n..... :lol:

ani a écrit : Avec regex(1)

Code : Tout sélectionner

$Regex = "[^\\]+\Z" ; on récupere le premier slash en commençant par la fin
$Link =  @ScriptFullPath
$hFichier = StringRegExp($Link,$Regex,3)
$Fichier = $hFichier[0]
$Dossier = stringreplace($Link,$fichier,"")

MsgBox(0x10,"", "Nom du fichier =" [color=#FF0000]& Fichier[/color] & @CRLF & "Dossier Source = " & $Dossier)
exit
une petite erreur cependant il manque "$" a fichier dans la msgbox :wink:

j'avais bien vu la fonction _PathSplit(), mais malgré ton exemple j'ai encore du mal à l'appréhender . :roll:

merci.
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Décortiqué et réasssembler le chemin d'un fichier

#5

Message par ani »

bein vu ;)

Alors pour _pathsplit celle-ci décortique le lien en 4 partie
1 = le drive
2 = le dossier
3 = le nom du fichier
4 = l'extension du fichier
ce qui donne un tableau avec 5 élèment, l'élèment 0 du tableau retourne le lien complet.

dans l'exemple^
pour l'include file elle comporte la fonction _pathSplit
; on déclare les partie cité au dessus.

Code : Tout sélectionner

Dim $szDrive, $szDir, $szFName, $szExt
;On découpe le lien ici c'est @scriptfullpath

Code : Tout sélectionner

$TestPath = _PathSplit(@ScriptFullPath, $szDrive, $szDir, $szFName, $szExt)
; on récupere le nom du fichier avec son extension

Code : Tout sélectionner

$Fichier = $szFName & $szExt  
ou

Code : Tout sélectionner

$Fichier = $TestPath[3] & $TestPath[4]
sera identique
; On récupere le nom du drive et du dossier

Code : Tout sélectionner

$Dossier = $TestPath[1] & $TestPath[2]
ou

Code : Tout sélectionner

$Dossier = $zsDrive & $szDir
Si tu appel $Testpath[0] celle-ci te retourne le lien complet

voilàvoilà
Avatar du membre
xeno
Niveau 4
Niveau 4
Messages : 79
Enregistré le : sam. 23 mai 2009 02:43
Status : Hors ligne

Re: [R] Décortiqué et réassembler le chemin d'un fichier

#6

Message par xeno »

ok je capte un peu mieux.
Répondre