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 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| Imports System.IO
Public Class Form1
Dim txtboxes1 As New List(Of TextBox)
Dim txtboxes2 As New List(Of TextBox)
Dim txtboxes3 As New List(Of TextBox)
Dim filename As String = "test.txt"
'Chargement du formulaire
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'On crée chaque groupe de textbox (ici il y en a 3)
txtboxes1.Add(TextBox1)
txtboxes1.Add(TextBox2)
txtboxes1.Add(TextBox3)
txtboxes1.Add(TextBox4)
txtboxes1.Add(TextBox5)
txtboxes1.Add(TextBox6)
txtboxes1.Add(TextBox7)
txtboxes1.Add(TextBox8)
txtboxes2.Add(TextBox9)
txtboxes2.Add(TextBox10)
txtboxes2.Add(TextBox11)
txtboxes2.Add(TextBox12)
txtboxes2.Add(TextBox13)
txtboxes2.Add(TextBox14)
txtboxes2.Add(TextBox15)
txtboxes2.Add(TextBox16)
txtboxes3.Add(TextBox17)
txtboxes3.Add(TextBox18)
txtboxes3.Add(TextBox19)
txtboxes3.Add(TextBox20)
txtboxes3.Add(TextBox21)
txtboxes3.Add(TextBox22)
txtboxes3.Add(TextBox23)
txtboxes3.Add(TextBox24)
End Sub
'Click sur le bouton 'Load'
Private Sub ButtonLoad_Click(sender As System.Object, e As System.EventArgs) Handles ButtonLoad.Click
Try
'on ouvre le fichier texte
Dim sr As New StreamReader(filename)
Dim ligne = sr.ReadLine
Dim numLigne As Integer = 1
'on lit ligne par ligne
While ligne IsNot Nothing
'suivant le numéro de ligne..
If numLigne = 1 Then
'..on remplit le bon groupe de textbox à partir de la ligne courante
LineToTextBoxes(ligne, txtboxes1)
ElseIf numLigne = 2 Then
LineToTextBoxes(ligne, txtboxes2)
ElseIf numLigne = 3 Then
LineToTextBoxes(ligne, txtboxes3)
End If
'on passe à la ligne suivante
ligne = sr.ReadLine
numLigne += 1
End While
'on ferme le flux
sr.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
'Click sur le bouton 'Save'
Private Sub ButtonSave_Click(sender As System.Object, e As System.EventArgs) Handles ButtonSave.Click
Try
'on ouvre le fichier texte
Dim sw As New StreamWriter(filename)
'pour chaque groupe de textbox
For Each txtboxes As List(Of TextBox) In {txtboxes1, txtboxes2, txtboxes3}
'on crée la ligne à écrire dans le fichier texte
Dim ligne As String = TextBoxesToLine(txtboxes)
'puis on l'écrit
sw.WriteLine(ligne)
Next
'on ferme le flux
sw.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
'Méthode qui concatène (pas sûr du mot xD) le contenu d'une liste de textbox
Private Function TextBoxesToLine(txtboxes As List(Of TextBox)) As String
'on crée une nouvelle liste de chaine de caractere
Dim nombres As New List(Of String)
'pour chaque textbox du groupe..
For Each txtbox In txtboxes
'..on ajoute le contenu à la liste
nombres.Add(txtbox.Text)
Next
'on retourne le tout sous forme de chaine de caractere
Return String.Join(",", CType(nombres.ToArray, String()))
End Function
'Méthode qui remplit une liste de textbox à partir d'une ligne
Private Sub LineToTextBoxes(ligne As String, txtboxes As List(Of TextBox))
'on decoupe la ligne grace au caractere separateur ","
Dim nombres As String() = ligne.Split(",")
'on associe le contenu d'une textbox et un nombre
For i = 0 To txtboxes.Count - 1
txtboxes(i).Text = nombres(i)
Next
End Sub
End Class |
Partager