Vb.net VB从文本导入值

Vb.net VB从文本导入值,vb.net,text-files,text-parsing,Vb.net,Text Files,Text Parsing,比如说,我有一个简单的三行文本文件,其中说明: FirstName=Adam LastName=Smith Age=25 但是有更多的文件具有不同的值和/或被置乱,LastName是第一个,FirstName是第二个等。因此,应用程序不能依赖行号,而是从文本中读取单词 我希望该应用程序进入文件,检测Adam是名,Smith是姓,年龄是25岁,并将其作为字符串输出,然后导入并立即分配给相应的应用程序内变量(LastName=Smith分配给应用程序内的LastName变量等) 我希望你能理解我

比如说,我有一个简单的三行文本文件,其中说明:

FirstName=Adam
LastName=Smith
Age=25 
但是有更多的文件具有不同的值和/或被置乱,LastName是第一个,FirstName是第二个等。因此,应用程序不能依赖行号,而是从文本中读取单词

我希望该应用程序进入文件,检测Adam是名,Smith是姓,年龄是25岁,并将其作为字符串输出,然后导入并立即分配给相应的应用程序内变量(LastName=Smith分配给应用程序内的LastName变量等)

我希望你能理解我。。很难解释:-)。如果你不能得到我真正想要的,我可以试着提供进一步的解释


提前感谢

您需要使用一些字符串函数。你需要的是和<代码>子字符串用于获取字符串的特定部分
IndexOf
用于获取字符串中某个部分的位置。因此,您需要得到等号所在的位置,然后将等号前后的字符串分开。等号前的是属性名称,等号后的是属性值

Sub Main

    Dim firstName As String = "", lastName As String = "", age As Integer
    For Each line In File.ReadLines("C:\input.txt")
        Dim equalSignIndex = line.IndexOf("=")
        Dim propertyName = line.Substring(0, equalSignIndex)
        Dim propertyValue = line.Substring(equalSignIndex + 1, line.Length - equalSignIndex - 1)
        Select Case propertyName
            Case "FirstName" :
                firstName = propertyValue
            Case "LastName" :
                lastName = propertyValue
            Case "Age" :
                age = propertyValue
        End Select
    Next
    Console.WriteLine("Name = {0} {1}, Age = {2}", firstName, lastName, age)

End Sub

下面是另一个可能的答案,使用可能合适的
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
正如你所看到的,我故意把一些东西按错误的顺序排列,添加了换行符,并且为了更好的衡量,还弄乱了字符的大小写

代码:

FirstName、LastName、Age只有在每个值都有了值后才会打印到控制台。因此,它将通过检查,写入控制台,然后变量将重置为下一组三个。希望这能有所帮助

上面的控制台输出:

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

请阅读并说明如何添加您尝试的示例。还包括所需的结果。我不确定您到底想做什么,但我会先将数据放入字典或适当的类中。在你弄明白这一部分之后,你可以在系统中查看导入。你知道如何打开一个文件并读取它吗?如果没有,请搜索并尝试一些代码。如果您的代码失败,请告诉我们您得到了什么错误或坏结果。是的,我知道如何使用My.Computer.FileSystem.Readalltext或StreamReader打开和读取整个文件,但是我不知道如何获得该文本的确切分区-因此它读取文本文件,检测到FirstName是Adam,并将FirstName等于Adam导入到应用程序中,与LastName=Smith等相同。我不希望这是预定义的我希望应用程序能够读取和存储数据,我完全不知道应该使用什么命令,我不知道如何收集,类或字典可以帮助我做到这一点,所以它不是一个代码编写服务。如果你需要有人为你写一个应用程序,有付费服务。如果你坚持自己做,但你不知道如何创建一个简单的算法,这对于问答形式来说是太宽泛了。谢谢你们!终于有人真正理解了我的意思:)。我到家后一定要试试。是的!在多种情况下尝试过,始终有效:)现在我想在数组上尝试,这样你就有了类似于{job1;job2;job3..}的资格。。要获得多个不同的输出。。这就是我对未来的展望:D.无论如何,谢谢你的帮助:)很高兴知道它奏效了。你为什么不把我的回答记为已回答?
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