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
|
Module Module1
Sub Main()
Dim NomEtCheminDuFichier As String = "D:\Tmp\TXT_Table\test.txt"
Dim FichierALire As System.IO.StreamReader
Dim LigneLue As String
If Not System.IO.File.Exists(NomEtCheminDuFichier) Then
' Erreur car fichier ininexistant
' Peut-être faire message ...
Exit Sub
End If
' ' Créer DataTable pour stockage des données
Dim dt_sum_protamex As New DataTable
dt_sum_protamex.Columns.Add("Number")
dt_sum_protamex.Columns.Add("Lenght")
dt_sum_protamex.Columns.Add("Mass[g/mol]") ' Ne pas mettre d'espace dans les noms de colonne (souyrce de problème) mais underscore permis.
dt_sum_protamex.Columns.Add("Chain")
dt_sum_protamex.Columns.Add("Details")
' ' Ouvrir fichier en lecture
FichierALire = New System.IO.StreamReader(NomEtCheminDuFichier)
' ' Aquisition des données
Dim Number As String = ""
Dim Lenght As String = ""
Dim Mass As String = ""
Dim Chain As String = ""
Dim Details As String = ""
' ' Passer les lignes inutiles de début de fichier
LigneLue = FichierALire.ReadLine.Trim()
While LigneLue = String.Empty And FichierALire.Peek <> -1 ' Pour le cas où il y aurait des lignes vierges en début de fichier
LigneLue = FichierALire.ReadLine.Trim(" ")
End While
' ' Traitement des données et lecture suivante
While FichierALire.Peek <> -1
Number = LigneLue.Substring(0, 9).Trim()
Select Case Number
Case "Code:"
Lenght = ""
Mass = LigneLue.Substring(17, 1).Trim()
Chain = LigneLue.Substring(28).Trim()
Details = ""
dt_sum_protamex.Rows.Add(Number, Lenght, Mass, Chain, Details)
FichierALire.ReadLine() ' Lecture ligne inutile des titres
Case "Excellent", "Good", "Moderate", "None"
Lenght = ""
Mass = LigneLue.Substring(20).Trim()
Chain = ""
Details = ""
If Mass <> "0" Then
dt_sum_protamex.Rows.Add(Number, Lenght, Mass, Chain, Details)
End If
Case Else
Number = Number.Substring(0, 1).Trim()
Lenght = LigneLue.Substring(2, 6).Trim()
Mass = LigneLue.Substring(8, 8).Trim()
Chain = LigneLue.Substring(19, 10).Trim()
Details = LigneLue.Substring(29).Trim()
dt_sum_protamex.Rows.Add(Number, Lenght, Mass, Chain, Details)
End Select
LigneLue = FichierALire.ReadLine.Trim() ' Lecture ligne suivante
While LigneLue = String.Empty And FichierALire.Peek <> -1 ' Pour le cas où il y aurait des lignes ne contenant que quelques parasites ...
LigneLue = FichierALire.ReadLine.Trim()
End While
End While
FichierALire.Close()
FichierALire.Dispose()
' Affichage en mode console (pour test)
For L As Integer = 0 To dt_sum_protamex.Rows.Count - 1
For C As Integer = 0 To dt_sum_protamex.Columns.Count - 1
Console.Write(dt_sum_protamex.Rows(L)(C) & vbTab)
Next
Console.WriteLine()
Next
Console.ReadKey()
End Sub
End Module |
Partager