Вот еще один возможный ответ, используя line.Split
, который может быть уместным.Я принял во внимание, что форматирование вашего текстового файла может быть немного запутанным, поэтому я сделал тестовый файл input.txt
, его содержимое выглядит примерно так:
FirstName=Adam
LastName=Smith
Age=25
lastName=Smith2
FirstName=Adam2
Age=35
age=45
Firstname=Adam3
LastName=Smith3
firstname=Adam4
LastName=Smith4
Age=55
FirstName=Adam5
LastName=Smith5
Age=65
Как вывидите, я намеренно поместил некоторые вещи в неправильном порядке, добавил разрывы строк, а также перепутал с символами для хорошей меры.
Код:
Dim firstName As String = String.Empty, lastName As String = String.Empty, age As Integer = 0
For Each line In File.ReadLines("C:\input.txt")
If line.Contains("=") Then
Dim TxtSplit() As String = line.Split("="c)
Select Case TxtSplit(0).ToLower
Case "firstname" : firstName = TxtSplit(1)
Case "lastname" : lastName = TxtSplit(1)
Case "age" : age = Integer.Parse(TxtSplit(1))
End Select
End If
If Not String.IsNullOrEmpty(firstName) AndAlso Not String.IsNullOrEmpty(lastName) AndAlso Not age = 0 Then
Console.WriteLine("Name: {0} {1}, Age: {2}", firstName, lastName, age)
firstName = String.Empty : lastName = String.Empty : age = 0
End If
Next
The FirstName, LastNameВозраст будет выведен на консоль только тогда, когда каждый из них имеет свое значение.Таким образом, он пройдет проверку, запишет в консоль, после чего переменные будут сброшены и готовы к следующему набору из трех.Надеюсь, это поможет.
Вывод на консоль сверху:
Name: Adam Smith, Age: 25
Name: Adam2 Smith2, Age: 35
Name: Adam3 Smith3, Age: 45
Name: Adam4 Smith4, Age: 55
Name: Adam5 Smith5, Age: 65