Читайте конкретные данные из блокнота - PullRequest
0 голосов
/ 21 мая 2019

У меня есть блокнот с некоторыми расшифрованными данными, как показано ниже, и я хотел бы прочитать данные из этого текстового файла и заполнить данные в отдельных текстовых полях.

Вот так выглядит мой вклад:

========================================================
Modified Date : 5/20/2019 8:45:56 AM     Modified by : 123
ID : 18677544
OLD Values:

First Name        Last Name        Middle Initial    
--------------    --------------  -----------------
John              Humpty        


NEW Values:

First Name        Last Name        Middle Initial    
--------------    --------------  -----------------
George            Louis 

========================================================

Это мой код

Dim path As String = "C:\Users\XXX\Desktop\123.txt"
    Dim searchTarget = "Modified Date"
     For Each line In File.ReadAllLines(path)
        If line.Contains(searchTarget) Then ' found it!
          Dim toBeSearched As String = "Modified Date : "
          Dim code As String = line.Substring(line.IndexOf(toBeSearched) + toBeSearched.Length)
          txtModifiedDate.Text = code// Here I'm getting Modified By value also but I need only the Modified Date in this textbox similarly for others
     Exit For ' then stop
    End If
Next line

В соответствии с ошибкой исключения перегрузки, получаемой при использовании драгоценных камней

enter image description here

Обновлено:

enter image description here

1 Ответ

2 голосов
/ 21 мая 2019

Если образец текстового файла, который вы дали, выглядит так, как он всегда выглядит, то это должно работать.

Я жестко закодировал большинство значений, но для приведенного выше текстового файла работает приведенный ниже код:

Sub GetInfo()
    Dim path As String = "C:\Users\XXX\Desktop\123.txt"
    Dim lines As New List(Of String)
    lines.AddRange(IO.File.ReadAllLines(path))

    Dim tmpArray = lines(1).Split(" "c)

   '******Update*******************
    Dim tmplist As New List(Of String)
    tmplist.Add(tmpArray(3))
    tmplist.Add(tmpArray(4))
    tmplist.Add(tmpArray(5))

    Dim strModifiedDate As String = String.Join(" ", tmplist.ToArray) 'Get the date by joining the date, time

    '************************ 
    strModifiedDate.Text = strModifiedDate

    Dim strModifiedBy As String = tmpArray(UBound(tmpArray))
    strModifiedBy.Text = strModifiedBy

    tmpArray = lines(2).Split(":"c)
    strID.Text = tmpArray(1).Trim

    Dim tmpStr As String = lines(7).Split(" "c)(0)
    strOldFirstName.Text = tmpStr

    tmpStr = lines(7).Substring(strOldFirstName.Text.Length).Trim
    strOldLastName.Text = tmpStr

    tmpStr = lines(14).Split(" "c)(0)
    strNewFirstName.Text = tmpStr
    tmpStr = lines(14).Substring(strNewFirstName.Text.Length).Trim
    strNewLastName.Text = tmpStr
End Sub

Example Output

...