comparaisons et listes de chaines
bonjour maya 22
si j'ai bien compris le traitement que tu veux faire , voici avec les corrections des noms de variables plus explicites comme l'as dit crew (sans quoi toi meme tu ne pourras comprendre ton code dans une semaine).
est ce bien ca le traitement ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
' Liste tablo chaîne de caractères (un mot par case),
' Liste tab2 plusieurs lignes ( une règle de grammaire par ligne) .
' comparer chaque case du vecteur tablo avec chaque première case de chaque ligne regles grammaires
' si correspondance trouvee continuer le comparaison avec le reste de la
' règle 'jusqu 'à fin ligne
' Afficher les mots (Chaîne) de caractères qui correspond à règle de
' grammaires dans Liste tabli.
' Nota Bene1 :Les variables listes ont ete renommees pour plus de clarte
' Nota Bene2 :La variable liste regleGrammaires doit etre RAZ pour a chaque
' lecture de ligne pour eviter des tests de comparaisons inutiles.
' Si tu veux garder le resultat des analyses de plusieurs lignes,
' il faut avoir une 2eme liste identique pour cumuler.
Imports System.IO
Imports System.Text
Public Class Form3
Dim motCles As New List(Of String) 'Tablo
Dim regleGrammaires As New List(Of String) 'Tab2
Dim MotCleRegleResultat As New List(Of String) 'Tabli
Dim cheminApp As String = Directory.GetCurrentDirectory & "\"
Private Sub Form3_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
btnAnalyseRegles.Enabled = False
End Sub
Private Sub btnAnalyseRegles_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnalyseRegles.Click
'Dim fichier As StreamReader = New StreamReader("C:\Users\samia\Desktop\Regles.txt", Encoding.UTF8)
Dim fichier As StreamReader = New StreamReader(cheminApp & "Regles.txt", Encoding.UTF8)
Dim ligneLue As String = fichier.ReadLine
'memorise le numero de ligne lue pour affichage
Dim numLigneLue As Integer = 1
'traite chaque ligne lue
While ligneLue IsNot Nothing
Dim strTable() As String = ligneLue.Split(" ")
'Affiche ligne lue
RtfBoxAfficheLigneLue.AppendText(ligneLue)
RtfBoxAfficheLigneLue.AppendText(vbCrLf)
'Ajoute à regleGrammaires
For I As Integer = 0 To UBound(strTable)
regleGrammaires.Add(strTable(I))
Next
'Tester occurence en position zero de la ligne
Dim OccurenceTrouve As Boolean = False
For I As Integer = 0 To motCles.Count - 1
If regleGrammaires.Contains(motCles(I)) Then
'premiere occurence en position zero
If regleGrammaires.IndexOf(motCles(I)) = 0 Then
'Affiche intitule ligne en cours
RtfBoxAnalyse.AppendText("Ligne N° :" & numLigneLue.ToString & vbCrLf)
'met flag à true
OccurenceTrouve = True
End If
End If
Next
'Si flag à true( occurence pos zero trouvee)
'chercher chaque mot regleGrammaires si dans motCles
If OccurenceTrouve Then
For I As Integer = 0 To regleGrammaires.Count - 1
For J As Integer = 0 To motCles.Count - 1
If regleGrammaires(I) = motCles(J) Then
'ajoute à MotCleRegleResultat
MotCleRegleResultat.Add(regleGrammaires(I))
'ajoute à RtfBoxAnalyse
RtfBoxAnalyse.AppendText(regleGrammaires(I))
End If
Next 'mot cle suvant
Next 'mot ligne suvant
End If
ligneLue = fichier.ReadLine
numLigneLue = numLigneLue + 1
'RAZ liste regleGrammaires
regleGrammaires.Clear()
RtfBoxAnalyse.AppendText(vbCrLf)
End While
fichier.Close()
End Sub
Private Sub btnLoadMotCle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoadMotCle.Click
Dim fichier As StreamReader = New StreamReader(cheminApp & "MotCles.txt", Encoding.UTF8)
Dim ligneLue As String = fichier.ReadLine
While Not (ligneLue Is Nothing)
Dim strTable() As String = ligneLue.Split(" ")
For I As Integer = 0 To UBound(strTable)
motCles.Add(strTable(I))
Next
ligneLue = fichier.ReadLine
End While
fichier.Close()
For Each elemStr As String In motCles
RtfBoxMotCles.AppendText(elemStr & vbCrLf)
Next
btnAnalyseRegles.Enabled = True
End Sub
End Class |
PJ: 2 fichiers textes Regles.txt et MotCles.txt
Bon code.....