2013-03-14 62 views
-1

我剛開始學習VBnet。VB.NET從指定文件夾中的多個文本文件中獲取特定的字符串

這裏的情況:

我有一個包含文本文件(約100)命名的數據1數據2等的文件夾..

每個文件都包含一個序列號:

例如:

在data1.txt中

HSB1序列號111222

在data2.txt

HSB1序列號987632

等。

我做了一個VB.Net程序,它允許用戶指定使用的FolderBrowserDialog的txt文件的文件夾位置。

我不知道的是如何做只是在文本框中顯示序列號。

當我點擊執行按鈕時,應該完成該命令。提前致謝!

到目前爲止,這是我的,對不起,我很新,但我必須儘快完成這個程序。

公共類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

這是工作? – 2013-03-14 10:46:43

+0

每個文件只包含一行數據,每行都按照上面的說明進行格式化? – Steve 2013-03-14 10:56:35

回答

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的實例來緩存所有讀取只有一個追加到目標文本框

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 

EDITED根據您的評論:The one that I gave is just the first line.

+0

對不起,添加這個,但在文本文件中包含更多的信息。我給的只是第一行。有更多的字符串,我需要得到如時間,句子等 – 2013-03-14 11:29:21

+0

該序列號具有任何特定的身份,同時與該文件中的其他文本進行比較。 – 2013-03-14 11:33:57

+0

呃這只是6位數 – 2013-03-15 01:04:51

相關問題