Lordanus
Messages postés11Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention 1 décembre 2006
-
30 oct. 2006 à 11:55
Lordanus
Messages postés11Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention 1 décembre 2006
-
30 oct. 2006 à 17:15
Bonjour, Débutant en Visual Basic J'aurais besoin d'un peu d'aide sur la lecture d'un fichier Txt.
En fait dans mon fichier .txt j'ai plusieures informations: un nom et une date.
Je voudrais que mon programme ouvre le fichier txt lise d'abord le nom et le mette dans une variable puis lise la date et la mette dans une autre variable.
ex de fichier txt :
Toto 25101952
Bertrand 03021978
(Les 2 informations sont separés par une tabulation)
Je connais la commande
Open fdsfsd.txt for input as #1
Do Until EOF(1)
Line Input #1, Noms
Loop
Close #1
Mais ceci ne me permet que de lire entierement la ligne et non pas de separer en 2 variables.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 30 oct. 2006 à 14:38
Salut,
Et bien au lieu de declarer Noms et Date comme tableau declare les simplement comme Chaine simple
Soit
'La ligne
Dim Ligne As String
Dim Param() As String
'LE nom
Dim Noms As String
'Le tableau
Dim DateN As String
'OUverture en lecture
Open "C:\Test.txt" For Input As #1
Do Until EOF(1)
'Recuperation de la ligne
Line Input #1, Ligne
'"Casse" la ligne avec Tabulation
'Comme séparateur
Param = Split(Ligne, vbTab)
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 30 oct. 2006 à 12:06
Salut,
IL te faut utiliser la fonction Split
Voici un exemple::
'La ligne
Dim Ligne As String
Dim Param() As String
'LE tableau de noms
Dim Noms() As String
'Le tableau de date
Dim DateN() As String
'Redimenssionnement des tableaux
ReDim Noms(0)
ReDim DateN(0)
'OUverture en lecture
Open "C:\Test.txt" For Input As #1
Do Until EOF(1)
'Recuperation de la ligne
Line Input #1, Ligne
'"Casse" la ligne avec Tabulation
'Comme séparateur
Param = Split(Ligne, vbTab)
'Place dans le tableau nom
Noms( UBound (Noms)) = Param(0)
'Place dans le tableau date
DateN(UBound(DateN)) = Param(1)
'Augmente la taille des tableau de 1
ReDim Preserve Noms(UBound(Noms) + 1)
ReDim Preserve DateN(UBound(DateN) + 1)
Loop
Close #1
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 30 oct. 2006 à 12:10
Salut,
Essaie cette procédure :
Private Sub Test()
Dim ff As Integer
Dim strFile As String
Dim Contenu As String
Dim strParLigne() As String
Dim strParMots() As String
strFile = "C:\Documents and settings\Mortalino\Bureau\Nouveau Document texte.txt"
' n'oublie mas de modifier le chemin et nom du fichier
ff = FreeFile
Open strFile For Input As #ff
Contenu = Input(LOF(ff), #ff)
Close #ff
strParLigne = Split(Contenu, vbCrLf)
For i = 0 To UBound(strParLigne)
strParMots = Split(strParLigne(0), vbTab)
For j = 0 To UBound(strParMots)
MsgBox "-" & strParMots(j) & "-"
Next j
Next i
Erase strParLigne: Erase strParMots
End Sub
--Mortalino-- Colorisation automatique
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Lordanus
Messages postés11Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention 1 décembre 2006 30 oct. 2006 à 14:31
Merci de vos réponses rapide
Maintenant une autre questions, serait t'il possible de faire la même chose avec seulement 2 variables, sans tableaux en supposant que dans notre fichier texte nous avons qu'une seule ligne comportant les 2 infos (noms + date) toujors separé par une tabulation.
Lordanus
Messages postés11Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention 1 décembre 2006 30 oct. 2006 à 17:15
Merci pour vos solutions qui on resolu mon problème et m'on appris a en savoir un peu plus sur certaines commandes de VB.
Merci aussi pour la rapidité de vos réponses.