VB2005 Express:
J'aimerais Détecter les 2 premiers caractères d'un nom de fichier ?
comme dans ce cas ci, F1
C:\PESCOF\F1_POUDRE NOIRE.PPS
Version imprimable
VB2005 Express:
J'aimerais Détecter les 2 premiers caractères d'un nom de fichier ?
comme dans ce cas ci, F1
C:\PESCOF\F1_POUDRE NOIRE.PPS
QUel est l'interet de faire compliquer quand on peut faire simple ? :mrgreen:
Mon idée est que peu importe le nom du fichier, je peux l'associer à une touche de raccourci du genre F1 à F12 !
Je n'ai qu’à ajouter un F1 devant et le fichier devient associé à ma Hot Key, F1
donc je dois vérifier si les deux caractères de gauche = F1
if left(nom,2) = "F1" and keyValue = F1 then
ouvre le fichier
si je fais un getfile, je ne peux pas l'utiliser avec "Left" car un "Fileinfo" ne peut pas être converti en string.
Perso je n'ai pas compris ce que tu veux faire...
Associé un fichier à une touche ca veut dire quoi ?
Tu veux que si ton fichier s'appelle "F1_Nom.pps" alors tu l'ouvres avec la touche F1 ?
J'ai fait un petit programme qui me permet d'ouvrir un fichier à l'aide des touches F1 à F12 chaque touche ouvre un fichier différent comme un hotKey launcher !
Sauf que le mien a des chemins fixes pour le dossier et nom de fichier.
Je ne veux pas ajouter de fonction "parcourir" et pointer le nouveau fichier!
Donc, ça serais cool si je pouvais détecter si le nom de fichier contiens la lettre F et le chiffre qui va avec!
Cela pourrait me permettre de modifier le titre du fichier sans briser le lien dans mon petit programme (que j'aurai modifié pour cette détection).
Exemple:
J'ai dans un dossier appelé "PESCOF" le fichier "F1_poudre noir.pps"
Dans mon prog le chemin est "C:\PESCOF\F1_poudre noir.pps" associé à la touche F1
Je décide que dans un mois, ce n'est plus celui de la poudre noire, mais celui de l'arc que je veux ouvrir avec F1, à ce moment la , j'ai 2 choix, changer le nom du nouveau pps pour celui de la poudre noir ou garder le nom "Arc" et lui ajouter un petit F1 devant.
J'aimerais pouvoir changer de .pps à volonté en gardant le titre principal, juste ajouter F1, F2 ...etc au début du nom.
Donc pas besoin de modifier le chemin dans le programme puisqu'il aura la capacité de reconnaître le fameux F1 au début du nom !
Je ne peux pas expliquer plus que ça!
Est ce que cela répond à ta question ?
Code:
1
2
3
4
5 Dim name As String = "F1_Nom.pps" Dim com As String = Microsoft.VisualBasic.Left(name, 2) Dim var() As String = Split("F1_Nom.pps", com) Dim change_com As String = "F2" Dim new_var As String = change_com & var(1).ToString
pas vraiment.
en fait je n'ai pas besoin d'un code qui change le F1 pour le F2 car cela est fait manuellement dans le dossier ou le fichier est enregistré
je vais écrire un speudo code pour d'écrire ce que je veux .. je te reviens la dessus.
Pourquoi tu n'appelles pas ton fichier F1.pps ?
Pour tout te dire, je n'ai toujours pas très bien compris (mais je suis peut etre stupide :mrgreen:)
Donc donne juste le problème que tu veux résoudre sans enoncé le principe de ta manipulation ;)
« HotKey file Launcher »
Pseudo code
VB2005 Express
1. Charger le formulaire principal
2. Si la touche F1 est pressée alors…
3. Chercher le fichier commençant par F1 dans le dossier par défaut, C:\PESCOF\
4. Extrais le nom complet incluant le F1 (Exemple : F1_Poudre noire.pps)
5. Ouvre le fichier commençant par F1
6. Si pas trouvé alors …
7. Afficher un message d’erreur « Aucun fichier F1 trouvé ! »
8. Si la touche F2 est pressée alors…
9. Chercher le fichier commençant par F2 dans le dossier par défaut, C:\PESCOF\
10. Extrais le nom complet incluant le F1 (Exemple : F1_Poudre noire.pps)
11. Ouvre le fichier commençant par F2
12. Si pas trouvé alors …
13. Afficher un message d’erreur « Aucun fichier F2 trouvé ! »
*************************************
Le code doit tenir compte que le nom de fichier peut être changé par l’utilisateur et peut contenir des longueurs variées de string,
Mais qu’il commencera toujours par F1, F2, F3 …etc!
Il est évidant que j’ai besoin de left !
Pour extraire le nom de fichier, j’ai pensé à Getfiles … mais le hic c’est que ça retourne un FileInfo qui ne peut être converti en string, donc pas possible d’utiliser Left!
**************************************
**************************************Code:
1
2
3
4
5
6
7
8
9
10
11
12 Dim dir As DirectoryInfo = New DirectoryInfo("C:\PESCOF") Dim fichier As FileInfo Extrait le non de fichier en format FileInfo For Each fichier In dir.GetFiles("*.pps") If left(fichier,2) = "F1" then (Erreur fichier ne peut pas être converti en string!) 'Nom du fichier à ouvrir proc.StartInfo.FileName = fichier (erreur) 'Démarrage du processus proc.Start() 'On libère les ressources proc.Close() Next
C’était un dernier essai d’explication … si ça ne marche pas, j’abandonne!
Voila la correction :
;)Code:
1
2
3
4
5
6
7
8
9 Dim dir As DirectoryInfo = New DirectoryInfo("C:\test") Dim fichier As FileInfo 'Extrait le non de fichier en format FileInfo For Each fichier In dir.GetFiles("*.txt") If Microsoft.VisualBasic.Left(fichier.Name, 2) = "F1" Then 'Démarrage du processus Process.Start(fichier.FullName) End If Next
Grand merci c'est exactement ce que je cherchais.:king: