Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在文本文件的最后一行中找到第一个数字,并将ino整数变量放入visual basic_Vb.net_Visual Studio 2012 - Fatal编程技术网

Vb.net 在文本文件的最后一行中找到第一个数字,并将ino整数变量放入visual basic

Vb.net 在文本文件的最后一行中找到第一个数字,并将ino整数变量放入visual basic,vb.net,visual-studio-2012,Vb.net,Visual Studio 2012,我正在制作一个程序,创建一个如下格式的文本文件: [1,*约翰,能源部,家庭,0002354561] [2,*Jason,Doe,产科医生,0002358411] [3,*Mikael,Doe,儿科,0002352361] [4,*Jamiel,美国能源部,骨科,00023547] 我需要的是一种读取文件并获取最后一行的第一个数字的方法。然后把它转换成一个整数 我知道我可以这样读第一行: Dim fileReader As System.IO.StreamReader fileR

我正在制作一个程序,创建一个如下格式的文本文件:

[1,*约翰,能源部,家庭,0002354561]

[2,*Jason,Doe,产科医生,0002358411]

[3,*Mikael,Doe,儿科,0002352361]

[4,*Jamiel,美国能源部,骨科,00023547]

我需要的是一种读取文件并获取最后一行的第一个数字的方法。然后把它转换成一个整数

我知道我可以这样读第一行:

    Dim fileReader As System.IO.StreamReader
    fileReader =
    My.Computer.FileSystem.OpenTextFileReader(("..\..\..\Patients.txt"))

    Dim stringReader As String
    stringReader = fileReader.ReadLine()
    MsgBox("The first line of the file is " & stringReader)

但是,如何读取最后一行并将第二个字符转换成整数变量呢?

我使用的是这样的方法

Dim lastLine As String = File.ReadLines(myFileName) _
                                .Where(Function(f As String) (Not String.IsNullOrEmpty(f))).Last.ToString
Dim startpos As Integer = lastLine.IndexOf(",", 3)
lastline = Substring(lastline, startpos).Trim
Dim firstchar as String = Substring(lastline,0,1)
Dim result As Integer
    If Integer.TryParse(firstchar, result) Then Return result _
        Else Return -1

下面是一个如何完成任务的示例,它将所有数字放入arraylist。并不是说,通过将其转换为long或整数,它将删除任何前导零

Public Function GetDigits() As System.Collections.ArrayList
    Dim numList As System.Collections.ArrayList
    numList = New System.Collections.ArrayList()
    Dim fileReader As System.IO.StreamReader
    fileReader = My.Computer.FileSystem.OpenTextFileReader(("C:\Patients.txt"))

    Dim stringReader As String
    While Not fileReader.EndOfStream
        stringReader = fileReader.ReadLine()
        If Trim(stringReader) = "" Then Continue While
        Dim strParts
        strParts = Split(stringReader, Chr(44))
        Try
            numList.Add(Integer.Parse(Trim(Replace(strParts(UBound(strParts)), "]", ""))))
        Catch
            MsgBox("Could not parse string: " & stringReader)
        End Try
    End While
    fileReader.Close()
    GetDigits = numList
End Function

为什么不拆分逗号上的字符串并使用最后一个元素来获取第一个字符,这是您的第一个数字,从外观上看,它始终为0,除非您需要从拆分返回的数组的最后一个元素的整数-如果该括号是字符串的一部分,请使用replace删除括号。它不会始终为零。那只是电话号码的占位符。我不知道如何用你说话的方式来操作字符串,至少在visual basic中是这样。为什么你把它放在一种格式中,使你以后检索起来更加困难?