0

次のように数行あるという点で、txtテキストファイルがあります。

SW1:bla bla bla
SW2:yada yada yada
SW3:yak yak yak

vb netで行SW1を検索し、前にあるものをtextbox1に配置します。たとえば、wise sw2:をtextbox2に、SW3:をtextbox3に配置します。

残りのすべての行はリッチテキストボックス1に入れられます

キーワードを検索し、vb.netを使用して前のテキストを特定のテキストボックスに送信することは可能ですか?

4

2 に答える 2

1

File.ReadAllLinesを使用して、ファイル全体を文字列の配列にロードできます (ファイルの 1 行に 1 項目)。次に、String.StartsWithおよびString.SubStringメソッドを使用して各行を解析できます。たとえば、次のようになります。

For Each line As String In File.ReadAllLines(filePath)
    If line.StartsWith("SW1:") Then
        TextBox1.Text = line.SubString(4)
    End If
    '...
Next

または、すべてのキーワードが同じ長さの場合は、選択ケースを使用できます。

For Each line As String In File.ReadAllLines(filePath)
    Select Case line.SubString(0, 4)
        Case "SW1:"
            TextBox1.Text = line.SubString(4)
        ' ...
    End Select
Next

または、すべてのキーワードがコロンで終わり、値にその文字が含まれていない場合は、String.Split各行からキーと値のペアを分割するために使用できます。

For Each line As String In File.ReadAllLines(filePath)
    Dim parts() As String = line.Split(":"c)
    Select Case parts(0)
        Case "SW1"
            TextBox1.Text = parts(1)
        ' ...
    End Select
Next

ファイルの残りの部分をリッチ テキスト ボックスに読み込むには、いくつかの方法がありますが、最も簡単な方法の 1 つは次のようになります。

Dim builder As New StringBuilder()
For Each line As String In File.ReadAllLines(filePath)
    If line.StartsWith("SW1:") Then
        TextBox1.Text = line.SubString(4)
    Else If line.StartsWith("SW2:") Then
        TextBox2.Text = line.SubString(4)
    Else If line.StartsWith("SW3:") Then
        TextBox3.Text = line.SubString(4)
    Else
        builder.AppendLine(line)
    End If
Next
RichTextBox1.Text = builder.ToString()
于 2013-01-28T15:36:49.433 に答える
1

スティーブン氏はすでに答えを得ているので。このように使うこともできます。

Dim source = File.ReadAllLines("d:\source.txt")
sw1TextBox.Text = source.Where(Function(c) c.StartsWith("SW1:")).FirstOrDefault().Substring(4)
sw2TextBox.Text = source.Where(Function(c) c.StartsWith("SW2:")).FirstOrDefault().Substring(4)
sw3TextBox.Text = source.Where(Function(c) c.StartsWith("SW3:")).FirstOrDefault().Substring(4)
于 2013-01-28T16:07:18.153 に答える