Bonjour.
Voila, sur mon programme l’utilisateur est emmené à choisir un fichier.
J aimerai que ensuit le nom du fichier s’affiche sur le programme.
Mais je n’arrive qu’a affiché le chemin complet du fichier, mais je n’ai pas trouvé comme affiché juste son nom.
Par exemple je voudrais que ça affiche « fichier.txt » ; et non pas « C:/fichier.txt »
Merci de votre aide.
[R] Le nom du fichier parcouru
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Le nom du fichier parcouru
Modifié en dernier par zelda2 le lun. 26 oct. 2009 14:36, modifié 1 fois.
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Le nom du fichier parcouru
Pour transformer une chaine de type xxxx\xxxx\xxxx\xxxx\yyyy en yyyy :
Code : Tout sélectionner
$var = 'c:\programme file\autoit\test.txt'
$var = StringSplit($var,'\')
$var = $var[$var[0]]
MsgBox('','',$var)Signez ici
Re: [..] Le nom du fichier parcouru
Merci.
Mais le problème c’est que je ne comprends pas du tout pourquoi cette fonction fait ça. Je pourrais très bien faire un copier coller et être content, mais j aimerai bien savoir comment ça marche …
J’espère que cela ne vous généra pas de m expliqué.
Mais le problème c’est que je ne comprends pas du tout pourquoi cette fonction fait ça. Je pourrais très bien faire un copier coller et être content, mais j aimerai bien savoir comment ça marche …
J’espère que cela ne vous généra pas de m expliqué.
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Le nom du fichier parcouru
Benheu, ya la doc pour ca. Sinon ;
StringSplit() coupe la chaine a chaque '\' (deuxième parametre) et renvoi les bout dans un tableau
$var = $var[$var[0]] dit que $var devient égale a $var[$var[0]].
$var[0] c'est 4 donc $var = $var[4].
$var[4] c'est 'test.txt' donc $var = 'test.txt'
$var[0] pointe toujours le 1er morceau, $var[$var[0]] pointe toujours le dernier
vala
StringSplit() coupe la chaine a chaque '\' (deuxième parametre) et renvoi les bout dans un tableau
$var[0] contient le nombre de bout$var[0] = 4
$var[1] = ':c'
$var[2] = 'programme file'
$var[3] = 'autoit'
$var[4] = 'test.txt'
$var = $var[$var[0]] dit que $var devient égale a $var[$var[0]].
$var[0] c'est 4 donc $var = $var[4].
$var[4] c'est 'test.txt' donc $var = 'test.txt'
$var[0] pointe toujours le 1er morceau, $var[$var[0]] pointe toujours le dernier
vala
Signez ici
Re: [..] Le nom du fichier parcouru
A oui effectivement, merci beaucoup d avoir pris le temps de me répondre.
J'utilise toujours le doc pour m'aidé ou pour comprendre ou cherche une fonction, mais celle la, je ne comprenais pas du tous ce qu elle faisais. (J ai les bases en anglais mais sans plus)
J'utilise toujours le doc pour m'aidé ou pour comprendre ou cherche une fonction, mais celle la, je ne comprenais pas du tous ce qu elle faisais. (J ai les bases en anglais mais sans plus)
- mimione
- Niveau 4

- Messages : 91
- Enregistré le : mer. 30 avr. 2008 18:11
- Localisation : Bretagne
- Status : Hors ligne
Re: [R] Le nom du fichier parcouru
Bonjour
Je dirai même plus: il y a ça: _PathSplit
(doc: voir dans les UDF standards)
Bonne journée
Je dirai même plus: il y a ça: _PathSplit
(doc: voir dans les UDF standards)
Bonne journée
Je ne suis pas toujours de mon avis....
--------------------------------------------
Des malheurs évités le bonheur se compose.
--------------------------------------------
Des malheurs évités le bonheur se compose.
- sylvanie
- Niveau 11

- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [R] Le nom du fichier parcouru
Allez ! Je vais y mettre une petite expression régulière, histoire de voire une autre méthode :
explication :
.+\\ va parcourrir la plus grande sous chaîne se terminant par \, puis
(.+) va sélectionner tout ce qu'il y a après.
Code : Tout sélectionner
$path="C:\xxxx\xxxx\xxxx\xxxx\yyyy.zz"
$file=StringRegExp($path,".+\\(.+)",1)
if Not @error Then ConsoleWrite($file[0])
.+\\ va parcourrir la plus grande sous chaîne se terminant par \, puis
(.+) va sélectionner tout ce qu'il y a après.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.

