Mettre le contenu d'un fichier texte dans plusieurs variables

Signaler
Messages postés
65
Date d'inscription
lundi 1 décembre 2003
Statut
Membre
Dernière intervention
19 juin 2009
-
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
-
Bonjour à tous,
Je voudrais savoir s'il est possible de récupérer dans plusieurs variables le contenu de mon fichier texte?
Il y a 25 lignes dans mon fichier texte et je voudrais affecter chaque ligne à une variable comme ceci : ligne 1 --> variable 1, ligne 2 --> variable2...

' Mon code pour lire les variables
Public Sub Stats()


cheminFichier_Stat = "C:\stats.txt"
If Dir(cheminFichier_Stat) <> "" Then ' si le fichier existe
Dim FStat, Contenu, f, txt_File, ligne
Dim i As Integer
Dim compteur As String
f = FreeFile 'Renvoie le numéro du fichier
FStat = cheminFichier_Stat
Open FStat For Input As f 'ouvre le fichier en mode lecture
'Input f, Contenu
Contenu = Input(LOF(f), f) 'lit le contenu du fichier et l'inscrit ds la variable Contenu
'C'est ici que j'aimerai affecter une ligne à une variable
Close 'ferme le fichier
MsgBox Contenu


Else 'Le fichier est inexistant
'Creer le fichier texte de Stat
Dim fso
Set WshShell = CreateObject("WScript.Shell") 'Creation d'un instance SHELL pour lancer le VBS
Set fso = CreateObject("Scripting.FileSystemObject") 'Creation d'un objet FSO - objet fichier
Set FStat = fso.CreateTextFile("C:" & user & ".txt", True) 'Creation du fichier texte et ecriture dans ce fichier
For i = 1 To 25
FStat.WriteLine ("0") 'Initialisation des variables à 0
Next i
FStat.Close 'Fermeture du fichier
End If 'Dir$("C:" & user & ".txt")


End Sub
'------------------------------------------------------------------------------

1 réponse

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
-pourquoi utiliser fso pour créer le fichier alors que tu as utilisé open pour le lire

c'est pas logique !
Open FStat For Output As f

Print #1, "0"



- si les noms de variables sont différents, il faudra faire autant de lecture que nécessaire

Line Input #1, variable1

Line Input #1, variable2

------------------------

Line Input #1, variable25



- si les variables sont indicées, tu peux faire une boucle.

- il y a aussi Tableau = Split (Contenu, vbCrLf)


Daniel