-1

今日からVBnetを学び始めました。

状況は次のとおりです。

data1 data2などの名前のテキストファイル(約100)を含むフォルダーがあります。

各ファイルにはシリアル番号が含まれています。

例:

data1.txt内

HSB1シリアル番号111222

data2.txt内

HSB1シリアル番号987632

等..

ユーザーがFolderBrowserDialogを使用してtxtファイルのフォルダーの場所を指定できるVB.Netプログラムを作成しました。

シリアル番号をテキストボックスにのみ表示する方法がわかりません。

実行ボタンをクリックすると、コマンドが実行されます。前もって感謝します!

これまでのところ、これは私が持っているものです。申し訳ありませんが、これは非常に新しいですが、このプログラムをできるだけ早く作成する必要があります。

パブリッククラスフォーム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

このサンプルは、ファイルに 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 回追加するだけですべての読み取りをバッファリングします。

于 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 に答える