Création d'un tableau à partir d'un fichier texte

Résolu
Yobiman Messages postés 3 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 10 janvier 2006 - 9 janv. 2006 à 19:27
Yobiman Messages postés 3 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 10 janvier 2006 - 10 janv. 2006 à 22:34
Bonjour à tous et toutes,

J'aimerai créer un tableau simple colonne à partir d'un fichier texte (en .txt). Dans ce fichier texte, il y aurait une liste de choses diverses et variées. Le tableau ne contiendrait que des chaines de caractères (donc string je pense).

Question bonus : si on pouvait m'orienter pour que cette même liste apparaisse dans un combobox, ce serait le pied.

Le but final étant que lorsque je change un item dans la liste du fichier cela apparaisse automatiquement au lancement du programme dans un combobox.

Je suis un grand débutant donc merci d'être indulgent avec moi.

Merci d'avance.

@+

PS : J'espère que j'ai mis mon post dans la bonne catégorie.

5 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
9 janv. 2006 à 20:36
salut,



Dim fichier As String,buff as string

Dim iFile as integer



fichier="C:\ton\fichier.txt"



ifile=freefile

Open fichier For Input As #ifile
do while not eof(ifile)

line input #ifile, buff

ton_combo.additem buff

loop

Close #ifile


ShareVB
3
Yobiman Messages postés 3 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 10 janvier 2006
10 janv. 2006 à 14:41
Merci ShareVB, c'est pile poil ce que je cherchait. Ca fonctionne avec les ch'tites adaptations qu'il fallait (nom des combos...).

Par contre si j'ai bien compris la boucle do while, que signifie for input as #ifile de la ligne open fichier ?

Désolé pour toi ScSami, mais je ne peux appliquer ta solution, même si j'ai tout compris ce que tu as dit, pour la bonne et simple raison que je suis un newbie en VB et que je manque de temps pour chercher les lignes de code.

Merci quand même.
3
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
10 janv. 2006 à 15:27
Cela signifit :

Open fichier For Input As #ifile
Ouvrir le fichier (fichier étant ici une variable ou directement une chaine "C:\Mon Dossier\Mon Fichier.EXT") en mode "Input", c'est à dire, en mode de réception séquentiel. Autrement dit, pour lire le fichier (et non pour en écrire un).
As #ifile est le numéro du canal du fichier. Il sert à identifier le fichier (en cas, par exemple, de Open imbriqués).

Par exemple, "Line Input #canal, variable" permet de récupérer une ligne entière (jusqu'au premier retour à la ligne) du fichier désigné par son canal (du moment que ce dernié ait été ouvert en mode Input!!!) et met cette ligne dans la variable qui suit.

Tu le retrouves également dans Close pour ne pas se tromper de fichier à fermer (en l'occurence, ici, on ne peut pas se tromper!!! Il est donc facultatif!).

D'autres questions encore ???

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
3
Yobiman Messages postés 3 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 10 janvier 2006
10 janv. 2006 à 22:34
Ah ben non, pour l'instant j'ai plus de questions.

Merci beaucoup.

A tchao.
3

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

Posez votre question
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
10 janv. 2006 à 13:36
Regarde également (dans l'aide) du coté de la fonction "Split" qui permet, selon certains critères, de découper une chaîne de caractère et de mettre les morceaux dans un tableau.

Tu peux donc, via Split, utiliser également le mode Binary de Open pour récupérer l'intégralité de ton fichier dans une variable avant de la découper comme bon te semble.

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
0
Rejoignez-nous