Ouvrir un fichier * txt vb.net

Touixi Messages postés 14 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 3 juillet 2008 - 25 juin 2008 à 08:39
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 - 25 juin 2008 à 13:11
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

GarnierFlorian Messages postés 129 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 26 juillet 2011
25 juin 2008 à 09:18
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  
 
0
Touixi Messages postés 14 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 3 juillet 2008
25 juin 2008 à 09:26
Merci Florian!
0
GarnierFlorian Messages postés 129 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 26 juillet 2011
25 juin 2008 à 09:36
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
 
0
GarnierFlorian Messages postés 129 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 26 juillet 2011
25 juin 2008 à 10:06
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

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 158
25 juin 2008 à 11:03
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
0
GarnierFlorian Messages postés 129 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 26 juillet 2011
25 juin 2008 à 11:11
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
 
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
25 juin 2008 à 11:29
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
0
Touixi Messages postés 14 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 3 juillet 2008
25 juin 2008 à 11:31
@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!
0
NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 158
25 juin 2008 à 11:39
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
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
25 juin 2008 à 13:06
"
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"
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
25 juin 2008 à 13:11
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")
0