tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルテキストファイル内の検索と表示
記事No3580
投稿日: 2006/05/03(Wed) 10:21
投稿者matu
[[OSのVer]:Windows xp    [VBのVer]:VB.NET 2005
こんにちは。

初めに、以前「まつ」で投稿しましたが、
同名の投稿があったので「matu」変更しました。

「テキストファイル内の検索と表示」で悩んでいます。
1234海
1616まち
4567大都会東京
0123山の中
1240川の中
上記のようなテキストファイルがあり
textbox1に「1234」と入力すると
textbox2に「海」と表示するソフトを作りたいと思っています。

ここの掲示板の「記事No : 2288」を参考に色々試したのですが、
以下のように作って見ましたがどうにもうまくいきません。

Dim hReader As New System.IO.StreamReader("..\..\u-block.txt",_
                                      System.Text.Encoding.Default)
        ' 読み込んだ結果をすべて格納するための変数を宣言する
        Dim stResult As String = String.Empty
        ' 読み込みできる文字がなくなるまで繰り返す
        While (hReader.Peek() >= 0)
            ' ファイルを 1 行ずつ読み込む
            Dim stBuffer As String = hReader.ReadLine()
            '読み込んだ行の先頭からの4文字とテキストボックス1のテキストが同じなら
            If stBuffer.Substring(1, 4) = TextBox1.Text Then
                'テキストボックス2に読み込んだ行の4文字目の後から末尾まで表示
                TextBox2.Text = stBuffer.Substring(4)
            End If
            ' 読み込んだものを追加で格納する
            stResult &= stBuffer & System.Environment.NewLine
        End While

        ' hReader を閉じる (正しくは オブジェクトの破棄を保証する を参照)
        hReader.Close()
どうしたら良いのか誰か教えて頂けたら幸いです。

[ツリー表示へ]
タイトルRe: テキストファイル内の検索と表示
記事No3581
投稿日: 2006/05/03(Wed) 12:44
投稿者YAS
matuさん,こんにちは。

はじめの4文字を取得したいのなら,

If stBuffer.Substring(1, 4) = TextBox1.Text Then

ではなくて,

If stBuffer.Substring(0, 4) = TextBox1.Text Then

では?

[ツリー表示へ]
タイトルRe^2: テキストファイル内の検索と表示
記事No3582
投稿日: 2006/05/03(Wed) 12:58
投稿者matu
[OSのVer]:Windows    [VBのVer]:VB.NET  
YASさんこんにちは!!
早速下記を試しました。

> If stBuffer.Substring(1, 4) = TextBox1.Text Then
>
> ではなくて,
>
> If stBuffer.Substring(0, 4) = TextBox1.Text Then
>
> では?

巧くいきました、いつもありがとうございます。
この1週間の悩みが晴れました、良いGWになりそうです。
本当にありがとうございました。

[ツリー表示へ]