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
| '=======================================================================
'3. On lit le fichier pour stocker les données dans le datatable dttData
'=======================================================================
If System.IO.File.Exists(filename) Then
Dim fs As New System.IO.StreamReader(filename)
Dim idxLigne As Integer = 0
While Not fs.EndOfStream
Dim str As String = fs.ReadLine
Dim dtr As DataRow = dttData.NewRow
dttData.Rows.Add(dtr)
For i As Integer = 0 To dttFileStructure.Rows.Count - 1
Dim start As Integer = dttFileStructure.Rows(i).Item("position").ToString
Dim range As Integer = dttFileStructure.Rows(i).Item("range").ToString
dttData.Rows(idxLigne).Item(i) = str.Substring(start - 1, range)
Next
idxLigne += 1
End While
fs.Close()
Else
' Gestion du LOG erreur
Dim err As New cLog
err.Trace_error(cnx, work_id, 1, "ERREUR : le fichier " & filename & " est introuvable")
Throw New Exception("ERREUR : le fichier " & filename & " est introuvable")
End If
'=======================================================================
'4. On trim toutes les données
'=======================================================================
For Each row As DataRow In dttData.Rows
Dim rowTrimed As DataRow = dttDataTrimed.NewRow()
For i As Integer = 0 To dttData.Columns.Count - 1
rowTrimed(i) = row(i).ToString.Trim
Next
dttDataTrimed.Rows.Add(rowTrimed)
Next
'=======================================================================
'5. On ecrit dttDataTrimed dans un fichier
'=======================================================================
Dim fs_out As New System.IO.StreamWriter(filename & ".transform", False, System.Text.Encoding.Unicode)
For i As Integer = 0 To dttDataTrimed.Rows.Count - 1
Dim str_out As New System.IO.StringWriter
For j As Integer = 0 To dttDataTrimed.Columns.Count - 1
str_out.Write(dttDataTrimed.Rows(i).Item(j).ToString)
If Not j = dttDataTrimed.Columns.Count - 1 Then
str_out.Write(vbTab)
End If
Next
fs_out.WriteLine(str_out.ToString)
Next
fs_out.Close() |
Partager