こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

VB2008 テキストボックス内文字検索と置き換え

テキストボックスの先頭5文字目から2文字に特定の文字があるか探し出して、特定文字があるならその行の後ろに文字をコピーして置き換え。
検索文字があっても無くても空白行の次の行になったら同様の処理を行う。
こういう処理をするにはどのようにすればいいでしょうか?

例)
特定の文字:ef
置き換えする内容:ef→いーえふ
<テキストボックスの内容>
abcdefgh
ijklmnop

qrstuvwx
yzABefEF
GHYJKLMN

OPQRefUV

<検索して置き換えた後>
abcdefgh いーえふ
ijklmnop

qrstuvwx
yzABefEF
GHIJKLMN

OPQRefUV いーえふ

どなたかご教授ください。
よろしくお願いします。

投稿日時 - 2009-04-30 16:48:10

QNo.4920959

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

これ、置換て言えるんでしょうか。。。

> 例)
> 特定の文字:ef
> 置き換えする内容:ef→いーえふ
> <テキストボックスの内容>
> abcdefgh
> ijklmnop
>
> qrstuvwx
> yzABefEF
> GHYJKLMN
>
> OPQRefUV
>
> <検索して置き換えた後>
> abcdefgh いーえふ
> ijklmnop
>
> qrstuvwx
> yzABefEF
> GHIJKLMN
>
> OPQRefUV いーえふ

文字列が複数行格納されているテキストボックスがある。
各行の文字列の左端からカウントして 5文字目から 2文字分が検索対象の文字だった場合、オリジナルの文字列の後ろに半角のスペースと特定の文字を追加する。
検索対象が入っていない行はオリジナルのまま。
これらの処理結果を元のテキストボックスに上書きする。

ということでしょうか?
で、言語は #1 さんの回答を受けて VB.NET てことで。

Dim textArray() As String
textArray = TextBox1.Lines

For i As Integer = 0 To textArray.Length - 1
  If (textArray(i).Length >= 6) AndAlso (textArray(i).Substring(4, 2) = "ef") Then
    textArray(i) &= " いーえふ"
  End If
Next

TextBox1.Lines = textArray

投稿日時 - 2009-05-11 18:32:50

ANo.1

テキストボックスの内容をLinesコレクションで取得し、
SubString関数で指定位置の文字を取得してはどうですか?

投稿日時 - 2009-04-30 18:13:49

補足

ありがとうございます。
返事が遅くなってすみません。
取得した文字を置き換えて、その行の後ろに連結するにはどうすればいいんでしょうか?

投稿日時 - 2009-05-03 14:41:02

あなたにオススメの質問