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
|
Private Sub TraiterLeLogToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TraiterLeLogToolStripMenuItem.Click
Dim nLignes() As String = txtLog.Lines 'Decoupe le texte principal par ligne
Dim i, j As Integer
Dim tampon(0) As String
Dim tabTri() As String = txtLog.Lines 'Affectation du contenu du 1er Tableau pour preserver son contenu
'Comparer les lignes pour determiner la plus longue des lignes
For i = 0 To UBound(tabTri) - 1
For j = i To UBound(tabTri)
If tabTri(i).Length < tabTri(j).Length Then
tampon(0) = tabTri(i)
tabTri(i) = tabTri(j)
tabTri(j) = tampon(0)
End If
Next j
Next
'Pas important juste pour des tests de verité
MsgBox("La ligne la plus longue est : ligne " & tabTri(0).Length, MsgBoxStyle.Information)
Dim tabProvisoire() As String = tabTri(0).Split(" ") 'Decoupe la chaine la plus longue pour l'affecter
'au tableau provisoire afin d'avoir une taille maxi
Dim tabSemiFini(UBound(nLignes), UBound(tabProvisoire)) As String
Dim Temp As String 'Tableau temporaire pour recevoir les chaines de chaque ligne découpée
'Decoupons chaque ligne en mots et mise en forme
For i = 0 To UBound(nLignes)
Temp = nLignes(i)
Dim tabTemp() = Temp.Split(" ")
For j = 0 To UBound(tabTemp)
tabSemiFini(i, j) = tabTemp(j)
If tabSemiFini(i, j) = "" Then Exit For
Next j
Next i
'Chaque valeur du tableau précédent est rangé dans un nouveau tableau
'Pour une utilisation aisée
Dim tempo As String
Dim tabFini(-1, UBound(nLignes)) As String
For i = 0 To UBound(tabSemiFini, 1)
j = 0
Do While j <= UBound(tabSemiFini, 2)
Select Case j
Case 0
tabFini(i, j) = tabSemiFini(i, j)
Case 1
tabFini(i, j) = tabSemiFini(i, j)
Case 2
If tabSemiFini(i, j) = "SENT" Then
tabFini(i, j) = tabSemiFini(i, j)
Else
tabFini(i, j) = tabSemiFini(i, j + 1)
End If
Case 4
tabFini(i, j) = tabSemiFini(i, j)
Case 5
tabFini(i, j) = tabSemiFini(i, j)
Case 6
tabFini(i, j) = tabSemiFini(i, j)
Case 7
tabFini(i, j) = tabSemiFini(i, j)
Case 8
tabFini(i, j) = tabSemiFini(i, j)
Case 9
tabFini(i, j) = tabSemiFini(i, j)
Case 10
tabFini(i, j) = tabSemiFini(i, j)
Case 11
tabFini(i, j) = tabSemiFini(i, j)
Case 12
For j = 12 To UBound(tabSemiFini, 2) - 1
tabFini(i, j) = tabFini(i, j) & " " & tabSemiFini(i, j)
If tabSemiFini(i, j + 1) = "[udh:0:]" Then
tabFini(i, j) = tabSemiFini(i, j + 1)
End If
Exit For
Next j
End Select
j = j + 1
Loop
Next i
For i = 0 To UBound(tabFini, 1)
For j = 0 To UBound(tabFini, 2)
tempo = tabFini(i, j) & vbCrLf
Next j
MsgBox(tempo, MsgBoxStyle.Information) 'Juste un test d'affichage
Next i
End Sub |
Partager