أخي
لاحظت أنك اعتمدت على vbTab ولكن الملف ليس مقسم على أساسه بل مقسم على أساس فهرس الحرف في السطر
حدد طول كل عمود، مثلا الأول 55حرفاً والثاني 50 وهكذا
هذه تجربة قد تكون الحل
ولكن عليك مراجعة كل عمود حيث له رقمان (باستثناء الأخير لأنه يأخذ المتبقي كله)
الرقم الأول بداية العمود
الرقم الثاني طول العمود من الأحرف (حتى لو كان مسافات فارغة)
لاحظت أنك اعتمدت على vbTab ولكن الملف ليس مقسم على أساسه بل مقسم على أساس فهرس الحرف في السطر
حدد طول كل عمود، مثلا الأول 55حرفاً والثاني 50 وهكذا
هذه تجربة قد تكون الحل
PHP كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dt As New DataTable
dt.Columns.Add("Column1")
dt.Columns.Add("Column2")
dt.Columns.Add("Column3")
dt.Columns.Add("Column4")
dt.Columns.Add("Column5")
dt.Columns.Add("Column6")
dt.Columns.Add("Column7")
dt.Columns.Add("Column8")
dt.Columns.Add("Column9")
dt.Columns.Add("Column10")
dt.Columns.Add("Column11")
dt.Columns.Add("Column12")
dt.Columns.Add("Column13")
dt.Columns.Add("Column14")
For Each txt As String In IO.File.ReadLines("medic.txt")
Dim r As DataRow = dt.NewRow
r.Item("Column1") = txt.Substring(0, 55).Trim
r.Item("Column2") = txt.Substring(55, 50).Trim
r.Item("Column3") = txt.Substring(105, 30).Trim
r.Item("Column4") = txt.Substring(135, 20).Trim
r.Item("Column5") = txt.Substring(155, 21).Trim
r.Item("Column6") = txt.Substring(176, 9).Trim
r.Item("Column7") = txt.Substring(185, 8).Trim
r.Item("Column8") = txt.Substring(193, 19).Trim
r.Item("Column9") = txt.Substring(215, 3).Trim
r.Item("Column10") = txt.Substring(218, 4).Trim
r.Item("Column11") = txt.Substring(223, 20).Trim
r.Item("Column12") = txt.Substring(243, 21).Trim
r.Item("Column13") = txt.Substring(264, 2).Trim
r.Item("Column14") = txt.Substring(266).Trim
dt.Rows.Add(r)
Next
Me.DataGridView1.DataSource = dt
End Sub
ولكن عليك مراجعة كل عمود حيث له رقمان (باستثناء الأخير لأنه يأخذ المتبقي كله)
الرقم الأول بداية العمود
الرقم الثاني طول العمود من الأحرف (حتى لو كان مسافات فارغة)

