LIRE UN FICHIER TEXTE LIGNE PAR LIGNE ET LE METTRE DANS UN TEXTE BOX
Ben
-
15 avril 2001 à 20:27
nodapio
Messages postés601Date d'inscriptiondimanche 23 novembre 2008StatutMembreDernière intervention 3 mai 2011
-
29 sept. 2010 à 16:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
nodapio
Messages postés601Date d'inscriptiondimanche 23 novembre 2008StatutMembreDernière intervention 3 mai 2011 29 sept. 2010 à 16:35
Chr$(13) et Chr$(10) peut aussi être remplacé par vbNewLine :) !
may83
Messages postés2Date d'inscriptiondimanche 23 septembre 2007StatutMembreDernière intervention 7 novembre 2007 7 nov. 2007 à 22:17
merci j'ai déja arrivé à acceder à un fichier texte mais le probleme c'est de générer la base pour obtenir des graphes à l'aide de l'excel
cs_hamada83
Messages postés12Date d'inscriptionmardi 11 septembre 2007StatutMembreDernière intervention10 décembre 2007 5 nov. 2007 à 09:54
bonjour MAY
je suis aussi debutant en VB, apres quelque recherche sur le net j'au pu acceder à un fichier text et mettre son contenu dans une BDD acces. alors je vai le mettre dans le Zip comme ca tu pe l'executer.
may83
Messages postés2Date d'inscriptiondimanche 23 septembre 2007StatutMembreDernière intervention 7 novembre 2007 4 nov. 2007 à 21:54
bonjour
je suis débutante en VB mon problème c'est de lire un fichier texte ligne par ligne et d'utiliser les données que se trouvents dans ce fichier pour remplir un tableau excel les données sont séparées par un espace, svp j'ai besion de vos aides
cs_hamada83
Messages postés12Date d'inscriptionmardi 11 septembre 2007StatutMembreDernière intervention10 décembre 2007 24 sept. 2007 à 16:11
bonjour
c'est bon j'ai reussi à resoudre le probleme
cs_hamada83
Messages postés12Date d'inscriptionmardi 11 septembre 2007StatutMembreDernière intervention10 décembre 2007 24 sept. 2007 à 15:47
bonjour
je suis un petit debutant en VB6
j'ai lu tous les codes existants mais j arrive pas à conclure une solution pour mon probleme
en fait j'ai un fichier .txt de forme a;z;f;a;e
e;g;r;t;e
m;k;f;d;s
et je voudrai connecter à ce fichier et recuperer ses lignes sans les ";"
j'ai essayé d'utiliser la fonction split mais l'affichage dans le text box est tuojours alligné genre s f s z r f s z r f s e r f t s
est ce que vous pouvez me passer une solution
voici mon code
private sub command1_Click
Dim VarTimeBase() as String
dim i as integer
i=0
Open"C:\test.txt" for input as #1
while not EOF(1)
input #1,a$
VarTimeBase()=split(a$,";")
for i=0 to Ubound(VarTimeBase)
Text1.text=Text1+VarTimeBase(i)+chr$(10)
next i
wend
close #1
end sub
merci d avance
dracoon
Messages postés13Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention 8 février 2008 3 avril 2007 à 20:01
Faudrait que tu fasses attention aux sources que tu donnes.
En l'espce de 5 minutes je suis tombé sur 2 de tes sources et les deux étaient incomplete ou fausse et c'est pourtant pas du code de tres haut niveau.
Mais bon c'a peut toujours être utile (si des certains sont là pour expliquer comment faire aux moins bon)
cs_zedude33
Messages postés38Date d'inscriptionmardi 1 août 2006StatutMembreDernière intervention 9 juillet 2013 9 août 2006 à 17:35
Bonjour,
Comme quoi en cherchant un peu et en se cassant la tête on y arrive :
Open "CFG_ALIMUSD_V_1.INC" For Input As #1
Dim VarTimeBase() As String
Dim LineTimeBase
NumLineTimeBase = 89 'déclare le numero de la ligne
Do Until EOF(1) 'avant EOF (=la fin du fichier) :
Line Input #1, LineTimeBase 'on met la valeur texte = la ligne
NumLineTimeBase = NumLineTimeBase + 1 'augmenter
If NumLineTimeBase = 100 Then GoTo NextTimeBase
Loop
NextTimeBase:
VarTimeBase() = Split(LineTimeBase, " ")
For i = 5 To UBound(VarTimeBase)
Time_Base.Text = VarTimeBase(i)
Next i
Close #1
Merci pour l'aide apportée et les idées proposées !
@+ Thierry
cs_zedude33
Messages postés38Date d'inscriptionmardi 1 août 2006StatutMembreDernière intervention 9 juillet 2013 9 août 2006 à 01:28
Bonjour,
Tout d'abord, merci Keneyda pour ton aide.
Je crois que je comprends la procédure et la marche à suivre mais je bloque sur l'écriture de Unbound qui ne fonctionne pas et génère des erreurs. Un bout de code source est décrit sur ce site mais je bloque.
J'ai aussi des soucis sur la sélection de la ligne à taiter :
Lorsque j'écris ceci pour récupérer ma ligne de Time_Base, c'est la ligne de Boot qui s'inscrit dans la TextBox :
Private Sub Form_Load()
Dim LineTimeBase
Dim VarTimeBase
Open "CFG_ALIMUSD_V_1.INC" For Input As #1
While Not EOF(1)
Input #1, a$
LineTimeBase = Time_Base + a$ + Chr$(13) + Chr$(10)
Wend
Time_Base.Text = LineTimeBase
VarTimeBase = Split(LineTimeBase, " ")
' Là je sèche pour le Unbound .
Close #1 ' Ferme le fichier.
Je n'arrive pas à comprendre pourquoi.
Je dois passer à côté de quelque chose mais je pense être trop novice pour voir de quoi il s'agit. Chr$(13) + Chr$(10) sert pour le retour de chariot d'après les résultats de mes recherches et le mécanisme semble bon.
J'aimerai comprendre.
Merci.
Thierry
cs_Keneyda
Messages postés41Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention27 mars 2009 8 août 2006 à 13:21
Pour faire simple la methode split permet de decouper une chaine en fonction d'un séparateur. Je vais essayer de te faire un petit exemple :
on considere que tu recuperes "Boot EQU M" dans la variable "laligne", on va decouper cette ligne en fonction du separateur " " (attention ce separateur doit etre le meme tous le temp pour que cela fonctionne sinon on ne sais plus ou on decoupe...).
Donc on a :
laligne="Boot EQU M"
Nouvellevariable = split(laligne," ") 'ici on dis que "Nouvellevariable" est le resultat du decoupage de "laligne" en fonction du separateur " "
Ensuite si cela te donne plusieurs indications :
- ubound(Nouvellevariable) est le nombre de valeur decouper (attention en VB ou ASP, le langage commence a compter par 0, donc comme tu a 3 valeur (Boot, EQU et M) cela te donne 2; donc :
ubound(Nouvellevariable)=2
- Ensuite si tu veux connaitre ces valeurs:
Nouvellevariable(0) = Boot
Nouvellevariable(1) = EQU
Nouvellevariable(2) = M
NB : Si tu veux faire des recherches sur Split(), tu peux aussi te tourner vers les tableaux, car split permet de faire des tableaux
J'espere que je n'ai pas été trop brouillon et que cela va t'aider...
@ Bientot
Keneyda
cs_zedude33
Messages postés38Date d'inscriptionmardi 1 août 2006StatutMembreDernière intervention 9 juillet 2013 8 août 2006 à 12:07
Tout d'abord merci pour ta réponse.
J'ai oublié de signaler que je suis débutant ; je patauge donc un petit peu.
J'ai fais des recherches sur la fonction Split mais sans exemple je n'y arrive pas.
Split(expression[, delimiter[, count[, compare]]])
expression doit correspondre à Time_Base EQU 10
Mais après... je sèche
De plus, comment focaliser directement l'Input sur le 30 de Spaces EQU 30 , sur le 100 de Post EQU 100
et sur le M de Boot EQU M ?
Merci
@+ Thierry
cs_Keneyda
Messages postés41Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention27 mars 2009 8 août 2006 à 11:07
Salut Thierry,
Le plus simple je pense est de decouper la ligne que tu lis en faisant un "split" en fonction des separateurs que tu a choisis
@+
Keneyda
cs_zedude33
Messages postés38Date d'inscriptionmardi 1 août 2006StatutMembreDernière intervention 9 juillet 2013 8 août 2006 à 10:40
Bonjour
Je recherche le moyen d'extraire une variable sur une ligne de texte.
J'ai essayé le bout de code source décrit plus haut mais ça ne fonctionne pas. Je dois mal m'y prendre.
En fait, je voudrai lire le 10 et l'affecter dans VarTimeBase de mon source.
10 vient du fichier texte :
(...)
;============================================
;/ VARIABLES SYSTEME /
;============================================
Time_Base EQU 10
Spaces EQU 30
Post EQU 100
Boot EQU M
(...)
Pouvez vous me donner la marche à suive ?
Merci
@+ Thierry
laghyou
Messages postés3Date d'inscriptionlundi 24 avril 2006StatutMembreDernière intervention28 avril 2006 28 avril 2006 à 18:58
il manque le variable qui porte les valeurs de fichier
Text1 = Text1 + a$ + Chr$(13) + Chr$(10)
c'est 100%100
laghyou
Messages postés3Date d'inscriptionlundi 24 avril 2006StatutMembreDernière intervention28 avril 2006 28 avril 2006 à 18:51
moi en 2006
spluiss
Messages postés27Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention 4 avril 2013 30 mai 2005 à 23:45
ton programme marche que si il y a un caractere de separation et pour vb, ce caratere c'est les guillemet ". Pour mon programme je cherche :
- soit le moyen de lire une textbox ligne par ligne
- soit de lire un fichier text ligne par igne avec pour caractere de separation le vbcrlf ou ch(10)+ch(13).
d'avance merci
sylvain
fifayer
Messages postés73Date d'inscriptiondimanche 29 décembre 2002StatutMembreDernière intervention14 décembre 2010 2 sept. 2004 à 02:41
a$ représente ce que vau la ligne lue justement !
Input #1, a$
lit le la première ligne du fichier 1 (#1)
met le résultat de la lecture dans la variable a$
cé on ne peut plus simple !
UnMage
Messages postés32Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention15 novembre 2004 29 juin 2004 à 20:05
Euh bonjour,
je voulais savoir a$ est sencé représenté quoi?
merci d'avance.
cs_Keneyda
Messages postés41Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention27 mars 2009 30 avril 2004 à 19:39
La normalement ca fonctionne
//////////////////////////////////////////////////
Private Sub Command1_Click()
'Text1.MultiLine = 1
Open "C:\monfichiertext.txt" For Input As #1
While Not EOF(1)
Input #1, a$
'Text1 = Text1 + Chr$(13) + Chr$(10)
Text1 = Text1 + a$ + Chr$(13) + Chr$(10)
Wend
///////////////////////////////////////////////////
Close #1
End Sub
dionysos6868
Messages postés310Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention 9 juin 20051 27 mars 2004 à 11:49
ca marche tres bien
inuyasha51
Messages postés8Date d'inscriptionjeudi 27 février 2003StatutMembreDernière intervention22 août 2005 29 oct. 2003 à 03:54
C'est tout cucul comme astuce (je veux dire simple) mais CA MARCHE PAS. Si les gens laissent des codes très simples pour aider les debutants, merci au moins de laisser des codes qui marchent. Sinon, c'est pas la peine. Merci pour l'effort quand même. Je vais chercher ailleurs.
obelix3200
Messages postés8Date d'inscriptionsamedi 5 octobre 2002StatutMembreDernière intervention 2 novembre 2002 2 nov. 2002 à 20:51
29 sept. 2010 à 16:35
7 nov. 2007 à 22:17
5 nov. 2007 à 09:54
je suis aussi debutant en VB, apres quelque recherche sur le net j'au pu acceder à un fichier text et mettre son contenu dans une BDD acces. alors je vai le mettre dans le Zip comme ca tu pe l'executer.
4 nov. 2007 à 21:54
je suis débutante en VB mon problème c'est de lire un fichier texte ligne par ligne et d'utiliser les données que se trouvents dans ce fichier pour remplir un tableau excel les données sont séparées par un espace, svp j'ai besion de vos aides
24 sept. 2007 à 16:11
c'est bon j'ai reussi à resoudre le probleme
24 sept. 2007 à 15:47
je suis un petit debutant en VB6
j'ai lu tous les codes existants mais j arrive pas à conclure une solution pour mon probleme
en fait j'ai un fichier .txt de forme a;z;f;a;e
e;g;r;t;e
m;k;f;d;s
et je voudrai connecter à ce fichier et recuperer ses lignes sans les ";"
j'ai essayé d'utiliser la fonction split mais l'affichage dans le text box est tuojours alligné genre s f s z r f s z r f s e r f t s
est ce que vous pouvez me passer une solution
voici mon code
private sub command1_Click
Dim VarTimeBase() as String
dim i as integer
i=0
Open"C:\test.txt" for input as #1
while not EOF(1)
input #1,a$
VarTimeBase()=split(a$,";")
for i=0 to Ubound(VarTimeBase)
Text1.text=Text1+VarTimeBase(i)+chr$(10)
next i
wend
close #1
end sub
merci d avance
3 avril 2007 à 20:01
En l'espce de 5 minutes je suis tombé sur 2 de tes sources et les deux étaient incomplete ou fausse et c'est pourtant pas du code de tres haut niveau.
Mais bon c'a peut toujours être utile (si des certains sont là pour expliquer comment faire aux moins bon)
9 août 2006 à 17:35
Comme quoi en cherchant un peu et en se cassant la tête on y arrive :
Open "CFG_ALIMUSD_V_1.INC" For Input As #1
Dim VarTimeBase() As String
Dim LineTimeBase
NumLineTimeBase = 89 'déclare le numero de la ligne
Do Until EOF(1) 'avant EOF (=la fin du fichier) :
Line Input #1, LineTimeBase 'on met la valeur texte = la ligne
NumLineTimeBase = NumLineTimeBase + 1 'augmenter
If NumLineTimeBase = 100 Then GoTo NextTimeBase
Loop
NextTimeBase:
VarTimeBase() = Split(LineTimeBase, " ")
For i = 5 To UBound(VarTimeBase)
Time_Base.Text = VarTimeBase(i)
Next i
Close #1
Merci pour l'aide apportée et les idées proposées !
@+ Thierry
9 août 2006 à 01:28
Tout d'abord, merci Keneyda pour ton aide.
Je crois que je comprends la procédure et la marche à suivre mais je bloque sur l'écriture de Unbound qui ne fonctionne pas et génère des erreurs. Un bout de code source est décrit sur ce site mais je bloque.
J'ai aussi des soucis sur la sélection de la ligne à taiter :
Lorsque j'écris ceci pour récupérer ma ligne de Time_Base, c'est la ligne de Boot qui s'inscrit dans la TextBox :
Private Sub Form_Load()
Dim LineTimeBase
Dim VarTimeBase
Open "CFG_ALIMUSD_V_1.INC" For Input As #1
While Not EOF(1)
Input #1, a$
LineTimeBase = Time_Base + a$ + Chr$(13) + Chr$(10)
Wend
Time_Base.Text = LineTimeBase
VarTimeBase = Split(LineTimeBase, " ")
' Là je sèche pour le Unbound .
Close #1 ' Ferme le fichier.
Je n'arrive pas à comprendre pourquoi.
Je dois passer à côté de quelque chose mais je pense être trop novice pour voir de quoi il s'agit. Chr$(13) + Chr$(10) sert pour le retour de chariot d'après les résultats de mes recherches et le mécanisme semble bon.
J'aimerai comprendre.
Merci.
Thierry
8 août 2006 à 13:21
on considere que tu recuperes "Boot EQU M" dans la variable "laligne", on va decouper cette ligne en fonction du separateur " " (attention ce separateur doit etre le meme tous le temp pour que cela fonctionne sinon on ne sais plus ou on decoupe...).
Donc on a :
laligne="Boot EQU M"
Nouvellevariable = split(laligne," ") 'ici on dis que "Nouvellevariable" est le resultat du decoupage de "laligne" en fonction du separateur " "
Ensuite si cela te donne plusieurs indications :
- ubound(Nouvellevariable) est le nombre de valeur decouper (attention en VB ou ASP, le langage commence a compter par 0, donc comme tu a 3 valeur (Boot, EQU et M) cela te donne 2; donc :
ubound(Nouvellevariable)=2
- Ensuite si tu veux connaitre ces valeurs:
Nouvellevariable(0) = Boot
Nouvellevariable(1) = EQU
Nouvellevariable(2) = M
NB : Si tu veux faire des recherches sur Split(), tu peux aussi te tourner vers les tableaux, car split permet de faire des tableaux
J'espere que je n'ai pas été trop brouillon et que cela va t'aider...
@ Bientot
Keneyda
8 août 2006 à 12:07
J'ai oublié de signaler que je suis débutant ; je patauge donc un petit peu.
J'ai fais des recherches sur la fonction Split mais sans exemple je n'y arrive pas.
Split(expression[, delimiter[, count[, compare]]])
expression doit correspondre à Time_Base EQU 10
Mais après... je sèche
De plus, comment focaliser directement l'Input sur le 30 de Spaces EQU 30 , sur le 100 de Post EQU 100
et sur le M de Boot EQU M ?
Merci
@+ Thierry
8 août 2006 à 11:07
Le plus simple je pense est de decouper la ligne que tu lis en faisant un "split" en fonction des separateurs que tu a choisis
@+
Keneyda
8 août 2006 à 10:40
Je recherche le moyen d'extraire une variable sur une ligne de texte.
J'ai essayé le bout de code source décrit plus haut mais ça ne fonctionne pas. Je dois mal m'y prendre.
En fait, je voudrai lire le 10 et l'affecter dans VarTimeBase de mon source.
10 vient du fichier texte :
(...)
;============================================
;/ VARIABLES SYSTEME /
;============================================
Time_Base EQU 10
Spaces EQU 30
Post EQU 100
Boot EQU M
(...)
Pouvez vous me donner la marche à suive ?
Merci
@+ Thierry
28 avril 2006 à 18:58
Text1 = Text1 + a$ + Chr$(13) + Chr$(10)
c'est 100%100
28 avril 2006 à 18:51
30 mai 2005 à 23:45
- soit le moyen de lire une textbox ligne par ligne
- soit de lire un fichier text ligne par igne avec pour caractere de separation le vbcrlf ou ch(10)+ch(13).
d'avance merci
sylvain
2 sept. 2004 à 02:41
Input #1, a$
lit le la première ligne du fichier 1 (#1)
met le résultat de la lecture dans la variable a$
cé on ne peut plus simple !
29 juin 2004 à 20:05
je voulais savoir a$ est sencé représenté quoi?
merci d'avance.
30 avril 2004 à 19:39
//////////////////////////////////////////////////
Private Sub Command1_Click()
'Text1.MultiLine = 1
Open "C:\monfichiertext.txt" For Input As #1
While Not EOF(1)
Input #1, a$
'Text1 = Text1 + Chr$(13) + Chr$(10)
Text1 = Text1 + a$ + Chr$(13) + Chr$(10)
Wend
///////////////////////////////////////////////////
Close #1
End Sub
27 mars 2004 à 11:49
29 oct. 2003 à 03:54
2 nov. 2002 à 20:51
1 mai 2001 à 23:48
Text1=Text1+ a$+Chr$(13)+Chr$(10)
15 avril 2001 à 20:27