Ouvrir un fichier * txt vb.net

Signaler
Messages postés
14
Date d'inscription
jeudi 14 février 2013
Statut
Membre
Dernière intervention
3 juillet 2008
-
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
-
Bonjour à tous codeurs chevronnés!

Je réalise actuellement une application qui doit ouvrir automatiquement un fichier. Malheureusement ce fichier n'a pas de nom fixe.
Il se présente sous la forme: blablaa_001.txt

J'aimerais savoir si l'on pouvait faire en sorte de ne pas tenir compte du mot blablaa et ouvrir ce fichier.

Je déclare mon fichier comme un String ( Private fichier As Stream = ("\My Documents\blablaa_001.txt")
J'ai essayé en utilisant la sémantique en remplacant blablaa_001.txt par  *_001.* . Mais impossible d'ouvrir ce fichier.
Comment lui donner en paramètres simplement une parti du fichier?
Je vous remercie d'avoir pris du temps de me lire et vous remercie d'avance pour l'aide que vous allez m'apporter!

11 réponses

Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

Salut touixi !
Je n'ai jamais fait ça, mais il me semble que tu ne peux pas utiliser "*" pour faire appel à ton fichier, car ce symbôle est utilisé pour choisir non pas un seul fichier mais tous !
Par exemple, si tu avais fait "*.txt", tout les fichiers avec l'extension .txt seraient appelés...
De plus tu utilise l'étoile au milieu de ton nom de fichier, alors qu'elle remplace tout le nom, donc forcément ça bloque.
Je ne sais pas comment faire appel à un fichier sans donner directement son nom en entier, mais déjà je pense que tu peux écarter la possibilité d'utiliser une étoile.
Si je ne me trompe pas, tu fait appel à un grand nombre de fichier dans une instruction qui te permet d'en ouvrir un seul, donc c'est impossible.
J'espère que quelqu'un pourra confirmer tout cela, ou même le démentir car je ne suis pas sur à 100% et donc cela permettrait d'être fixé.
En attendant je vais faire quelque recherche pour voir si jamais je trouve une façon de donner une parti de fichier en paramètre.

Peace  
 
Messages postés
14
Date d'inscription
jeudi 14 février 2013
Statut
Membre
Dernière intervention
3 juillet 2008

Merci Florian!
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

Mais de rien
Par contre j'ai quelques petites questions :

Pourquoi ne veux tu pas faire appel à ton fichier directement avec son nom ?

Ton application va t-elle toujours faire appel au meme fichier ?

En fait, que veux tu exactement ?
Car si tu fait toujours appel au meme fichier, autant que tu lui définisse un nom

Donc encore une petite question, pourquoi tu ne donne pas un nom fixe à ton fichier ?

Peace
 
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

Pour ton fichier, peut être est-il possible d'utiliser :
%_001.txt
"%" permet de remplacer une chaîne de caractères de longeur quelconque,donc ici ça remplacerait blablaa.
"_" permet de remplacer un caractère excatement, du coup je pense que tu peux le laisser, mais il remplacera "_" par "_"...mais ce n'est pas très grave^^
Par contre je vois pas très bien comment faire sans l'extension du fichier  

Là tu va faire appel au fichier dans lequel se trouve _001.txt dans le nom, avec  une chaine de caractère devant.
Du coup, il faut q'un seul fichier est dans son nom _001.txt :
si tu as blablaa_001.txt et jeparle_001.txt, ça ne marcheras pas ( problème d'ouvrir un seul fichier en faisant appel à plusieurs..)

Peace

 
Messages postés
14741
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 décembre 2020
148
Bonjour

Il faut ouvrir explicitement un seul et unique fichier (je ne connais aucune commande qui permet d'utiliser les jokers.

[auteur/GARNIERFLORIAN/1404082.aspx GarnierFlorian], je te corrige, les jokers utilisés pour les nom de fichiers (et l'opérateur Like, mais à vérifier ce sujet) :
* toute chaine (y compris vide)
? un seul caractère

L'ouverture d'esprit ne se limite pas toujours à une fracture du crâne.
VB (6, .NET1&2), C++, C#.Net1
Mo
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

Oki merci NHenry, je n'étais vrément pas sur, et j'avais bien raison d'ailleurs^^ Je dois confondre avec les jokers utilisés en SQL :$
En tout cas je me disais bien qu'il étai compliqué d'ouvrir un fichier sans l'appeler explicitement.
Bon courage à toi touixi, et merci encore NHenry.

Peace
 
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
salut,

Je déclare mon fichier comme un String ( Private fichier As Stream = ("\My Documents\blablaa_001.txt")

attention aux type, peut-être juste une simple faute de frappe...
en plus tu pars de "\My , il manque la lettre du lecteur...

sinon en VB6 çà donnerait 
dim fichier as string
fichier = dir("C:\My Documents\*_001.txt", vbsystem or vbhidden)

plus qu'à ouvrir fichier qui contient soit le bon nom de fichier, soit rien ^^

donc à doir s'il n'y a pas quelques chose dans la classe system.io (je suppose)

ps : bizarre de rechercher "*_001", en général on cherche plutôt "blabla_*" non?

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
14
Date d'inscription
jeudi 14 février 2013
Statut
Membre
Dernière intervention
3 juillet 2008

@Florian.

Apres quelques modification de ma part, mon application devra ouvrir un fichier .txt de type  releve_001.txt
Les 3 chiffres 001 vont bien entendu se modifier selon le numéro de relevé que l'on veut consulter.

Imaginons que je prenne en paramètre le numéro (exemple: 002)
Comment lui indiquer ce 002 dans l'appel du fichier?

j'espère avoir été clair.
En vous remerciantt Florian et NHenry pour votre aide!
Messages postés
14741
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 décembre 2020
148
Bonjour

Tu peux utiliser un truc du genre pour lister le fichiers :
Dim ltFiles as string()=io.Directory.GetFiles("releve_???.txt",NomDossier)
(pas sûr de la syntaxe)

Et ensuite pour l'ouvrir :
- Récupérer tout le tecxte (.NET2+) :
Dim lContenu as String=My.Computer.FileSystem.ReadAllText("NomFichier")
(pas sûr de la syntaxe)

- Prendre un Stream :
Dim lStream as io.Stream=io.File.Open("NomFichier")
(pas sûr de la syntaxe)

L'ouverture d'esprit ne se limite pas toujours à une fracture du crâne.
VB (6, .NET1&2), C++, C#.Net1
Mo
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
"
Imaginons que je prenne en paramètre le numéro (exemple: 002)
Comment lui indiquer ce 002 dans l'appel du fichier?
"
si tu as le numéro du relevé  alors simple
dim NumRef as string ="002"
dim monFichier as String = TonPath & "blabla" & NumRef & ".txt"
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
fais un test avec une messagebox pour voir si tu as bien le "" ou utilise dim monFichier as String =FileIO.FileSystem.CombinePath(TonPath, Blabla & Numref & ".txt")