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 121 122 123 124 125 126 127 128
| Function LecteureTabPrixMp(ByVal Traitementficheir As String)
' Version 07/02/2020
'
'
' Traitement
'
Using MyReader As New FileIO.TextFieldParser(Traitementficheir, Text.Encoding.Default)
'
'
'----------------------------------------------------------------------
' © 2020 -
'----------------------------------------------------------------------
'
'Déclartion comteur de ligne
'
'
'
'
' Déclarations des variables :
' Competeur de ligne "contient les lignes lues dans la boucle"
Dim compteurligne As Integer = Nothing
'
'
'Déclaration d'un tableau à deux dimensions qui contient les infos du fichier à traiter
Dim MonTableau(,) As String = Nothing
' LigneCourante est un tableau qui contient les différentes valeurs des
' éléments contenu dans la ligne lue
Dim LigneCourante As String() = Nothing
' Nombre de colonnes
Dim Numcolonnestab As Integer = Nothing
'Nombre de ligne
Dim Numlignetab As Integer = Nothing
'
'
'
'Adapter le parser
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(";")
MyReader.TrimWhiteSpace = True
'Boucle de traitement
Do While Not MyReader.EndOfData
' Remarque : Si ReadFields rencontre des lignes vides, elles sont ignorées
'et la prochaine ligne non vide est retournée.
LigneCourante = MyReader.ReadFields()
'
'
'
' Mettre les valeurs de lignecouante en Debug
'For Each Element As String In LigneCourante
' Debug.WriteLine(Element)
'Next Element
' Détermination du nombre de lignes de MonTableau
'
If compteurligne = 1 Then
Numlignetab = LigneCourante.GetUpperBound(0)
ElseIf compteurligne < 1 Then
compteurligne += 1
Continue Do
End If
'
'
'
' A cette étape, on doit redimensionner le tableau ( en fonction des lignes lues)
'
'
'
ReDim Preserve MonTableau(Numlignetab, compteurligne - 1)
'
' Affectation des valeurs à MonTableau avec remplacement des
For i As Integer = LigneCourante.GetLowerBound(0) To LigneCourante.GetUpperBound(0)
MonTableau(i, compteurligne - 1) = LigneCourante(i)
Next i
'
'
'
' Incrémentation de CompteurLigne
'
compteurligne += 1
'
'
'
Loop
'Transposé mon tableau
'
' Fermeture du fichier à "parser"
'
MyReader.Close()
'
' Libère les ressources les ressources utilisées par MyReader
'
MyReader.Dispose()
'
' Retourne le tableau
'
Return MonTableau
' Fermeture du Using
ReDim DataTranspose(MonTableau.GetUpperBound(1), MonTableau.GetUpperBound(0))
'
For i As Integer = MonTableau.GetLowerBound(0) To MonTableau.GetUpperBound(0)
For j As Integer = MonTableau.GetLowerBound(0) To MonTableau.GetUpperBound(0)
DataTranspose(i, j) = MonTableau(j, i)
Next j
Next i
End Using
End Function
End Module |
Partager