the easiest way is to split it as you load the dt:

vb Code:
  1. Public Class Form1
  2.  
  3.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.         Dim fileText As String = IO.File.ReadAllText("C:\Users\Paul\Desktop\string.txt")
  5.         fileText = fileText.Substring(fileText.IndexOf("<STX>")).Replace(" ", "")
  6.         Dim items() As String = fileText.Split(New String() {"<RS>", "<US>", "<STX>", "<EOT>"}, StringSplitOptions.RemoveEmptyEntries)
  7.  
  8.         Dim dt As New DataTable
  9.         dt.Columns.Add("Test")
  10.         dt.Columns.Add("Person ID")
  11.         dt.Columns.Add("Date")
  12.         dt.Columns.Add("Time")
  13.         dt.Columns.Add("Technician ID")
  14.         dt.Columns.Add("Hearing Results")
  15.         dt.Columns.Add("Impedance")
  16.  
  17.         For x As Integer = 0 To items.GetUpperBound(0) Step 6
  18.             Dim d As DateTime = Date.ParseExact(items(x + 2), "yyyyMMddHHmm", Nothing)
  19.             dt.Rows.Add(New Object() {items(x), items(x + 1), d.ToString("MM/dd/yyyy"), d.ToString("HH:mm"), items(x + 3), items(x + 4), items(x + 5)})
  20.         Next
  21.  
  22.         DataGridView1.DataSource = dt
  23.     End Sub
  24.  
  25. End Class