我今天刚开始学习VBnet。
情况如下:
我有一个文件夹,其中包含名为data1 data2等的文本文件(约100个)。
每个文件都包含一个序列号:
示例:
在data1.txt
中HSB1序列号111222
在data2.txt
中HSB1序列号987632
等。
我制作了一个VB.Net程序,让用户使用FolderBrowserDialog指定txt文件的文件夹位置。
我不知道的是如何只在文本框中显示序列号。
单击执行按钮时应该执行该命令。提前谢谢!
到目前为止,这就是我所拥有的,对不起,我很陌生,但我必须尽快制定这个计划。
Public Class Form1
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
结束班
答案 0 :(得分: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
答案 1 :(得分: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.