Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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 如何从文件名中提取客户端号_Vb.net - Fatal编程技术网

Vb.net 如何从文件名中提取客户端号

Vb.net 如何从文件名中提取客户端号,vb.net,Vb.net,下午好 我正在努力解决这个问题(VB.Net),需要一些帮助 我在一个目录中有大约800个文件,我想从中获取文件名并提取客户编号 目录中文件的外观示例如下: Client 11111提案47241 inputed.msg 客户22222提案88754已输入。msg 客户33333.msg输入利息组合5514720 为客户输入的投资建议书0987654 34343.msg 为客户33333.msg输入的投资建议书1234567 为客户输入的投资建议书7456781 66666。msg 运行代码时,

下午好

我正在努力解决这个问题(VB.Net),需要一些帮助

我在一个目录中有大约800个文件,我想从中获取文件名并提取客户编号

目录中文件的外观示例如下:

Client 11111提案47241 inputed.msg
客户22222提案88754已输入。msg
客户33333.msg输入利息组合5514720
为客户输入的投资建议书0987654 34343.msg
为客户33333.msg输入的投资建议书1234567
为客户输入的投资建议书7456781 66666。msg

运行代码时,应获得以下结果:

11111
22222
33333
34343
33333
66666

下面是我正在使用的代码:

Dim path = txtWatchPath.Text
    Dim files = Directory.GetFiles(path, "*.msg")

    Dim expr = New Regex("\bClient\b\s\d{5}")

    For Each file In files
        If expr.IsMatch(file) Then
            lsbxLog.Items.Add(file)
        End If
    Next
但是,此代码的输出显示以下内容:

C:\Temp\Client 11111 Proposal 47241 inputted.msg
C:\Temp\Client 22222 Proposal 88754 inputted.msg
C:\Temp\Interest Portfolio 5514720 inputted for Client 33333.msg
C:\Temp\Investment Proposal 0987654 inputted for Client 34343.msg
C:\Temp\Investment Proposal 1234567 inputted for Client 33333.msg
C:\Temp\Investment Proposal 7456781 inputted for Client 66666.msg
有人能帮我吗?我只需要文件名中的客户号

亲切问候,,
A

假设客户端的长度始终为5:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    Dim filenames As New List(Of String)
    filenames.Add("Client 11111 Proposal 47241 inputted.msg")
    filenames.Add("Client 22222 Proposal 88754 inputted.msg")
    filenames.Add("Interest Portfolio 5514720 inputted for Client 33333.msg")
    filenames.Add("Investment Proposal 0987654 inputted for Client 34343.msg")



    For Each fileName In filenames
        MessageBox.Show(GetClientName(fileName))
    Next fileName


End Sub

Private Function GetClientName(fileName As String) As String
    Dim leadingString = "Client "
    Dim startPos = fileName.IndexOf(leadingString) + leadingString.Length
    Dim parsedString = fileName.Substring(startPos, 5)

    Return parsedString


End Function

假设客户机长度始终为5:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    Dim filenames As New List(Of String)
    filenames.Add("Client 11111 Proposal 47241 inputted.msg")
    filenames.Add("Client 22222 Proposal 88754 inputted.msg")
    filenames.Add("Interest Portfolio 5514720 inputted for Client 33333.msg")
    filenames.Add("Investment Proposal 0987654 inputted for Client 34343.msg")



    For Each fileName In filenames
        MessageBox.Show(GetClientName(fileName))
    Next fileName


End Sub

Private Function GetClientName(fileName As String) As String
    Dim leadingString = "Client "
    Dim startPos = fileName.IndexOf(leadingString) + leadingString.Length
    Dim parsedString = fileName.Substring(startPos, 5)

    Return parsedString


End Function