Extraction d'informations dans un fichier texte (Parsing?)

n0k14b0y
Messages postés
3
Date d'inscription
vendredi 9 juillet 2004
Statut
Membre
Dernière intervention
15 juillet 2004
- 9 juil. 2004 à 17:12
n0k14b0y
Messages postés
3
Date d'inscription
vendredi 9 juillet 2004
Statut
Membre
Dernière intervention
15 juillet 2004
- 15 juil. 2004 à 23:44
J'aimerais que quand l'utilisateur tape un mot dans ma textbox et valide (par Entrée ou en cliquant sur un bouton), le code aille chercher dans un fichier texte l'un des mots qu'il a tapé et qu'il renvoie une réponse prédéfinie dans ce fichier texte; un exemple pour mieux comprendre:

L'utilisateur tape: "j'aime les oiseaux"

dans le fichier texte, il y a:
chats:c'est nul les chats
oiseaux:c'est joli les oiseaux
chiens:c'est bien les chiens

L'écran affiche "c'est joli les oiseaux"

4 réponses

Satirik
Messages postés
44
Date d'inscription
mardi 2 juillet 2002
Statut
Membre
Dernière intervention
3 août 2004

9 juil. 2004 à 21:38
dim noms() as string
dim reponses() as string
dim tmpWords() as string
dim tmp as string
redim noms(0)
redim reponses(0)
open "c:\tonfichier.pouet" for input as #1
do until eof(1)
line input #1,tmp
tmpwords=split(tmp,":")
redim preserve noms(ubound(noms)+1)
redim preserve reponses(ubound(noms))
reponses(ubound(noms))=tmpwords(1)
noms(ubound(noms))=tmpwords(0)
loop
close #1
dim i as integer
for i=0 to ubound(noms)
if instr(text1.text,noms(i))>0 then msgbox reponses(i)
next

tu met un textbox text1 un boutton command1 tu copy colle le code dans le boutton et voila

c pas testé par contre pe ke ya des bugs =)

La Machine
0
n0k14b0y
Messages postés
3
Date d'inscription
vendredi 9 juillet 2004
Statut
Membre
Dernière intervention
15 juillet 2004

10 juil. 2004 à 00:16
Merci pour ta réponse (rapide, de surcroît)
le code général semble bon mais y'a deux trois blèmes:
déjà, il connaît pas "open", il me renvoie à "filesystem.openfile" et là entre parenthèse y'a des dizaines de trucs à mettre et je suis un gros newbie alors j'entrave que dalle :blush)
Y pige pas non plus le caractère #
ni le "for input as"
Je suppose que ça vient du fait que j'utilise VB.net et plus VB6 :)
Je vais faire une recherche pour essayer d'arranger ça tout seul, mais bon si tu sais comment faire n'hésite pas hein :blush)

En tout cas merci beaucoup pour ton aide
0
Satirik
Messages postés
44
Date d'inscription
mardi 2 juillet 2002
Statut
Membre
Dernière intervention
3 août 2004

10 juil. 2004 à 18:51
ah vi c du vb6 j'ai jamais touché au .net desolé

La Machine
0
n0k14b0y
Messages postés
3
Date d'inscription
vendredi 9 juillet 2004
Statut
Membre
Dernière intervention
15 juillet 2004

15 juil. 2004 à 23:44
bon j'ai un peu modifié pour que ça tienne en vb.net mais il me renvoie une erreur:
An unhandled exception of type 'System.ArgumentNullException' occurred in microsoft.visualbasic.dll

Additional information: La valeur ne peut pas être null.


voilà le code modifié:

        Dim noms() As String
        Dim reponses() As String
        Dim tmpWords() As String
        Dim tmp As String
        FileOpen(1, "C:\envoi.txt", OpenMode.Input, OpenAccess.Read)
        While Not EOF(1)
            tmpWords = Split(tmp, ":", -1, CompareMethod.Text)
            ReDim Preserve noms(UBound(noms) + 1)
            ReDim Preserve reponses(UBound(noms))
            reponses(UBound(noms)) = tmpWords(1)
            noms(UBound(noms)) = tmpWords(0)
            Dim i As Integer
            For i = 0 To UBound(noms)
                If InStr(boite_envoi.Text, noms(i)) > 0 Then MsgBox(reponses(i))
            Next
        End While


Est ce que ça le fait déjà en vb6? (avec le code original?)
J'ai vraiment essayé plein de trucs et pas moyen de m'en sortir
0