-1

我今天刚开始学习VBnet。

情况如下:

我有一个文件夹,其中包含名为 data1 data2 等的文本文件(大约 100 个)。

每个文件都包含一个序列号:

例子:

在data1.txt

HSB1 序列号 111222

在data2.txt

HSB1 序列号 987632

ETC..

我制作了一个 VB.Net 程序,允许用户使用 FolderBrowserDialog 指定 txt 文件的文件夹位置。

我不知道如何仅在文本框中显示序列号。

当我单击执行按钮时,该命令应该完成。提前致谢!

到目前为止,这就是我所拥有的,对不起,我对此很陌生,但我必须尽快制作这个程序。

公开课形式1

  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim folderDlg As New FolderBrowserDialog
    folderDlg.ShowNewFolderButton = True
    If (folderDlg.ShowDialog() = DialogResult.OK) Then
        TextBox1.Text = folderDlg.SelectedPath
        Dim root As Environment.SpecialFolder = folderDlg.RootFolder
    End If
End Sub

Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk

End Sub

Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

End Sub

Private Sub Execute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Execute.Click

End Sub

结束类

4

2 回答 2

1

如果您的文件只有一行文本并且每一行的格式都如您在上面解释的那样,则此示例应该可以工作

Dim fileList = Directory.GetFiles(TextBox1.Text, "*.txt", false)
Dim sb = New StringBuilder()
For Each fileName in fileList
    Dim lines = File.ReadAllLines(fileName)
    if lines.Length > 0 then
        Dim part = lines[0].Split(" "c)
        if part.Length > 2 Then
            sb.AppendLine(part(3))
        End If
    End If
Next
TextBox2.Text = sb.ToString()

TextBox2 是您要显示搜索结果的文本框。它应该将其属性 MultiLine 设置为 True 和垂直滚动条(使用设计器设置它们)

该代码使用了一些静态方法,例如Directory.GetFiles和 File。ReadAllLines和StringBuilder类的一个实例,用于缓冲所有读取,只需一个附加到目标 TextBox

于 2013-03-14T11:07:48.627 回答
0

此代码应该可以工作,如果文件名和序列号的模式与您在问题中给出的相同,

  Private Sub Execute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Execute.Click

     For Each xFile In Directory.GetFiles(TextBox1.Text, "*.txt", false)
         'Textbox2 is the resultant textbox.
         TextBox2.Text &= space(2) & File.ReadAllLines(xFile)(0).Substring(File.ReadAllLines(xFile)(0).Length - 6, 6)
     Next

    End Sub

编辑根据您的评论:The one that I gave is just the first line.

于 2013-03-14T11:18:32.207 回答