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
Rejoignez-nous