Comment chercher une chaine et lire la ligne suivante
ephores
Messages postés123Date d'inscriptionlundi 30 juin 2003StatutMembreDernière intervention 5 juin 2007
-
21 avril 2004 à 22:16
ephores
Messages postés123Date d'inscriptionlundi 30 juin 2003StatutMembreDernière intervention 5 juin 2007
-
26 avril 2004 à 20:50
Bonjour,
voici mon blem :
j'ai un fichier texte nommé c:\test.txt, à l'intérieur j'ai :
"
bonjour
salut
aurevoir
a bientôt
merci
de rien
"
Dans mon programme, j'ai une textbox nommé Text1 et une autre Text2. avec un bouton command.
Je veux que si je tape dans text1 : aurevoir, qu'il affiche dans text2 : a bientôt.
voilà le bout de code qu'on m'a donné ( dans ce forum, merci ;-) ) qui me permet de verifier si le contenue de text1 est égale à un mot du fichier :
Open "c:\test.txt" For Input As #1
If InStr(LCase(Input(LOF(1), 1)), LCase(Text1)) Then Text2 =
il me manque la suite.....
Merci pour votre aide, et d'aider les newbbies comme moi !
A voir également:
Comment chercher une chaine et lire la ligne suivante
Tilois
Messages postés721Date d'inscriptiondimanche 10 juin 2001StatutMembreDernière intervention27 mars 20117 22 avril 2004 à 00:27
dim fin as boolean
dim mot1 as string
dim mot2 as string
fin=false
while not(eof(1)) and not(fin)
'tu les deux lignes par deux lignes
line input #1,mot1
line input #1,mot2
if ucase$(trim$(mot1))=ucase$(trim$(text1)) then
fin=true
text2.text=mot2
end if
wend
ephores
Messages postés123Date d'inscriptionlundi 30 juin 2003StatutMembreDernière intervention 5 juin 2007 22 avril 2004 à 18:48
alors ...
voila ce que j'ai fais, problème ça marche que sur les deux première ligne, qui peut m'aider ? SVP pour le newbbies de service :
Private Sub Command2_Click()
Dim mot1 As String
Dim mot2 As String
Open "c:\test2.txt" For Input As #1
Line Input #1, mot1
Line Input #1, mot2
If InStr(LCase(mot1), LCase(Text1)) Then Text2 = mot2
Text1 = ""
Close #1
End Sub
Tilois
Messages postés721Date d'inscriptiondimanche 10 juin 2001StatutMembreDernière intervention27 mars 20117 22 avril 2004 à 22:35
ben oui excuse moi j'azi oublier le open=. c'est normal que ton code ne marche pas sur les autres lignes puisque ton code ne lit effectivement que les deux premieres.
Le open est a mettre avant le while
open "c:\fichier" for input as #1
voila...
Vous n’avez pas trouvé la réponse que vous recherchez ?
ephores
Messages postés123Date d'inscriptionlundi 30 juin 2003StatutMembreDernière intervention 5 juin 2007 23 avril 2004 à 09:42
MERCI,.... encore une erreur :
l'entrée dépace la fin de fichier à cette ligne :
Line Input #1, mot2
voici l'integralité de mon prog :
Dim fin As Boolean
Dim mot1 As String
Dim mot2 As String
fin = False
Open "c:\test2.txt" For Input As #1
While Not (EOF(1)) And Not (fin)
'tu les deux lignes par deux lignes
Line Input #1, mot1
Line Input #1, mot2
If UCase$(Trim$(mot1)) = UCase$(Trim$(Text1)) Then
fin = True
Text2.Text = mot2
End If
Wend
End Sub
Tilois
Messages postés721Date d'inscriptiondimanche 10 juin 2001StatutMembreDernière intervention27 mars 20117 25 avril 2004 à 22:07
bon ben ca, ca veux dire que ton fichier ne contient pas des mots deux par deux.
Dans ces cas la tu gere avec un on error goto. C'est pas très ésthétique mais ca marchera !
ephores
Messages postés123Date d'inscriptionlundi 30 juin 2003StatutMembreDernière intervention 5 juin 2007 26 avril 2004 à 09:32
Pardon......
voila l'exemple de mon fichier texte :
"
Bonjour
Salut comment ça va ?
Aurevoir
J'espere à bientôt !
"
je voudrais que mot2="Salut comment ça va ?", c'est possible ?
avec le code d'en haut ça ne marche que sur les deux premier mais pour le reste j'ai une erreur : "'entrée dépace la fin de fichier à cette ligne :
Line Input #1, mot2".
Voilà
Désolé de pas avoir été claire, et mille merci pour ta patience .
Tilois
Messages postés721Date d'inscriptiondimanche 10 juin 2001StatutMembreDernière intervention27 mars 20117 26 avril 2004 à 19:48
pour que le code focntionne (celui du haut) il faut que ton fichier possede un nombre paire d'entrées. De plus il ne faut pas mettre de ligne vides entre les entrées ...
ephores
Messages postés123Date d'inscriptionlundi 30 juin 2003StatutMembreDernière intervention 5 juin 2007 26 avril 2004 à 20:39
voici mon code :
Private Sub Command3_Click()
Dim mot1 As String
Dim mot2 As String
Open "c:\test2.txt" For Input As #1
Line Input #1, mot1
Line Input #1, mot2
If InStr(LCase(mot1), LCase(Text1)) Then Text2 = mot2
Close #1
End Sub
voici mon fichier test2.txt :
bonjour
Salut ça va ?
aurevoir
A la prochaine...
***********************************
cela ne marche qu'avec les deux premier, si je tape " bonjour " dans text1 , alors text2 affiche " Salut ça va ? " mais si je tape "aurevoir" rien ne se passe .
....
ephores
Messages postés123Date d'inscriptionlundi 30 juin 2003StatutMembreDernière intervention 5 juin 2007 26 avril 2004 à 20:50
voila avec ça , ça marche mais j'ai une erreur à la fin de l'execution : While Not (EOF(1)) And Not (fin) à cette ligne... erreur : " Nom ou numéro de fichier incorrecte "
Private Sub Command3_Click()
Dim fin As Boolean
Dim mot1 As String
Dim mot2 As String
fin = False
Open "c:\test2.txt" For Input As #1
While Not (EOF(1)) And Not (fin)
'tu les deux lignes par deux lignes
Line Input #1, mot1
Line Input #1, mot2
If UCase$(Trim$(mot1)) = UCase$(Trim$(Text1)) Then
fin = True
Text2.Text = mot2
Close #1
End If
Wend
End Sub