Private Sub Form7_Load(byVal sender As System.Object, byVal e As System.EventArgs) Handles MyBase.Load i = 0 End Sub
Dim tablo As New List(Of String) Dim tabli As New List(Of String) Dim tab2 As New List(Of String)
Private Sub Button5_Click(byVal sender As System.Object, byVal e As System.EventArgs) Handles Button5.Click Dim fichier As StreamReader = New StreamReader("C:\Users\samia\Desktop\Regles.txt", Encoding.UTF8) Dim cont1 As String = fichier.ReadLine Dim j As Integer = 0 Dim x As Integer While Not (cont1 Is Nothing) Dim tab() As String = cont1.Split(" ") For v = 0 To UBound(tab) tab2.Add(tab(v)) Next Dim k As Integer = i Dim l As Integer = j Dim bool As Boolean = compare(tablo(k), tab2(l)) For x 1 To tab2.Count AndAlso bool True tabli.AdD(tablo(k )) k = k + 1 l = l + 1 bool = compare(tablo(k ), tab2(l)) Next Dim tb() As String = tabli.ToArray For g = 0 To UBound(tb) RichTextBox3.AppendText(tb(g)) Next cont1 = fichier.ReadLine End While i = i + 1 fichier.Close() End Sub
le/PREP ciel/NOUN est/VERB bleu/ADJ ,/PUNC il/PREP fait/VERB beau/ADJ
PUNC ABBREV ABBREV PUNC PUNC ABBREV PUNC PUNC ABBREV ABBREV ABBREV PUNC PUNC NUM PUNC PUNC DET+NOUN_PROP PUNC NOUN_PROP ADJ
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Sub Button5_Click(byVal sender As System.Object, byVal e As System.EventArgs) Handles Button5.Click If i <= tablo.Count Then i = i + 1 End If Dim fichier As StreamReader = New StreamReader("C:\Users\samia\Desktop\Regles.txt", Encoding.UTF8) Dim cont1 As String = fichier.ReadLine Dim j As Integer = 0 Dim x As Integer RichTextBox3.Clear() While Not (cont1 Is Nothing) Dim tab() As String = cont1.Split(" ") For v = 0 To UBound(tab) tab2.Add(tab(v)) Next Dim k As Integer = i Dim l As Integer = j x = 0 Dim bool As Boolean = compare(tablo(k ), tab2(l )) While (x <> tab2.Count - 1) And (bool = True) tabli.Add(tablo(k)) k = k + 1 l = l + 1 bool = compare(tablo(k ), tab2( l)) x = x + 1 End While Dim tb() As String = tabli.ToArray For g = 0 To UBound(tb) - 1 RichTextBox3.AppendText(tb(g )) Next tabli.Clear() Erase tb Erase tab tab2.Clear() cont1 = fichier.ReadLine End While fichier.Close() End Sub
je prend le/PREP je compare PREP (donc ce qu'il y a après le /) avec la première règle (je commence avec le premier élément c-à-d PUNC) si ça concorde je continue à comparer élément par élément sinon je saute a la règle suivante, dans mon cas la dernière règle est bonne, donc j'arrive a comparer jusqu'à la fin de la règle, puis j'enregistre ma chaîne dans un tableau.
le/PREP ciel/NOUN est/VERB bleu/ADJ ,/PUNC il/PREP fait/VERB beau/ADJ
PREP NOUN VERB ADJ PUNC PREP VERB ADJ
Function compare(byVal val As String, byVal val1 As String) As Boolean Dim var As String = val Dim pos As Long = InStr(var, "/") Dim var1 As String = Mid(var, pos + 1) Dim bool As Boolean If var1 = val1 Then bool = True Else bool = False End If Return (bool) End Function
dans ce cas la j'aurai //PUNC comme entrée
L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection. Nom du paramètre : index
Private Sub Button5_Click(byVal sender As System.Object, byVal e As System.EventArgs) Handles Button5.Click If i <= tablo.Count - 1 Then i = i + 1 End If Dim fichier As StreamReader = New StreamReader("C:\Users\samia\Desktop\Regles.txt", Encoding.UTF8) Dim cont1 As String = fichier.ReadLine Dim j As Integer = 0 Dim x As Integer = 0 While Not (cont1 Is Nothing) RichTextBox3.Clear() Dim tab() As String = cont1.Split(" ") For v = 0 To UBound(tab) tab2.Add(tab(v)) Next Dim k As Integer = i Dim l As Integer = j x = 0 Dim bool As Boolean = compare(tablo(k), tab2(l)) While (x <tab2.Count - 1) And bool True tabli.Add(tablo(k)) k = k + 1 l = l + 1 'cest ici que lexception se produit bool = compare(tablo(k ), tab2(l )) x = x + 1 End While Dim tb() As String = tabli.ToArray For g = 0 To UBound(tb) RichTextBox3.AppendText(tb(g ) & vbLf) Next tabli.Clear() Erase tb Erase tab cont1 = fichier.ReadLine 'cest ici que ça pose probleme tab2.Clear() End While fichier.Close() End Sub
k = k + 1 l = l + 1 'cest ici que lexception se produit bool = compare(tablo(k ), tab2(l ))
Private Reglesgrammaire As New List(Of String) Private listanalyser As New List(Of String) Private listresult As New List(Of String) Private Sub ReadFile() Dim pathreglegrammaire As String = "E:\test.txt" ' à modifier selon le fichier Dim pathlistanalyser As String = "E:\test1.txt" ' à modifier selon le fichier Try Reglesgrammaire = System.IO.File.ReadAllLines(pathreglegrammaire).ToList listanalyser = System.IO.File.ReadAllLines(pathlistanalyser).ToList Catch ex As Exception MessageBox.Show(ex.Message) End End Try End Sub Private Function Getcomposant(ByVal phrase As String) As String Dim str() As String Dim composant As String = String.Empty str = phrase.Split(" ") For Each element As String In str composant &= element.Substring(element.IndexOf("/") + 1) + " " Next composant = composant.Substring(0, composant.Length - 1) Return composant End Function Private Sub Analyse() Dim str As String listresult.Clear() For Each element As String In listanalyser str = Getcomposant(element) For Each regle As String In Reglesgrammaire If str = regle Then listresult.Add(element) listresult.Add(regle) End If Next Next End Sub