LIRE UN FICHIER TEXTE LIGNE PAR LIGNE ET LE METTRE DANS UN TEXTE BOX

Ben - 15 avril 2001 à 20:27
nodapio Messages postés 601 Date d'inscription dimanche 23 novembre 2008 Statut Membre Derniè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.

https://codes-sources.commentcamarche.net/source/49-lire-un-fichier-texte-ligne-par-ligne-et-le-mettre-dans-un-texte-box

nodapio Messages postés 601 Date d'inscription dimanche 23 novembre 2008 Statut Membre Dernière intervention 3 mai 2011
29 sept. 2010 à 16:35
Chr$(13) et Chr$(10) peut aussi être remplacé par vbNewLine :) !
may83 Messages postés 2 Date d'inscription dimanche 23 septembre 2007 Statut Membre Derniè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és 12 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 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és 2 Date d'inscription dimanche 23 septembre 2007 Statut Membre Derniè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és 12 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 décembre 2007
24 sept. 2007 à 16:11
bonjour
c'est bon j'ai reussi à resoudre le probleme
cs_hamada83 Messages postés 12 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 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és 13 Date d'inscription mercredi 26 avril 2006 Statut Membre Derniè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és 38 Date d'inscription mardi 1 août 2006 Statut Membre Derniè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és 38 Date d'inscription mardi 1 août 2006 Statut Membre Derniè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és 41 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 27 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és 38 Date d'inscription mardi 1 août 2006 Statut Membre Derniè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és 41 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 27 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és 38 Date d'inscription mardi 1 août 2006 Statut Membre Derniè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és 3 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 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és 3 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 avril 2006
28 avril 2006 à 18:51
moi en 2006
spluiss Messages postés 27 Date d'inscription lundi 30 mai 2005 Statut Membre Derniè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és 73 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 14 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és 32 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 15 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és 41 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 27 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és 310 Date d'inscription jeudi 4 septembre 2003 Statut Membre Dernière intervention 9 juin 2005 1
27 mars 2004 à 11:49
ca marche tres bien
inuyasha51 Messages postés 8 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 22 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és 8 Date d'inscription samedi 5 octobre 2002 Statut Membre Dernière intervention 2 novembre 2002
2 nov. 2002 à 20:51
marche toujours po... :(
il manque le contenu du fichier
Text1=Text1+ a$+Chr$(13)+Chr$(10)
Ca marche pas!
Rejoignez-nous