C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 58 を表示中)
■32639 / )  リッチテキストボックスの中身を検索する
□投稿者/ OROCHI (5回)-(2009/02/11(Wed) 16:08:04)

分類:[C#] 

OS:windowsXP
開発:Visual C# 2008

こんにちは、現在2つのリッチテキストボックスを用意して、上段のリッチテキストボックスに書いた内容を検索して、下のリッチテキストボックスに表示させるプログラムを作ろうとしています

動作例

上段の内容

A1 C1
B1 D1
A1_1 A12

ここで、検索条件を[A]とした場合、下段に以下の内容を表示(Aの後の文字列は英字・数字・アンダーバーだけとし、これらの文字以外が出現するまでを表示する)

1
1_1
12

このようなプログラムを作りたい場合、大体以下のような流れで書けばいいと思うのですが、一部不明な点があります
わかる方、教えていただけないでしょうか

1.上段のリッチテキストボックスの内容を取得
this.richTextBox1.SelectAll(); // 全ての値を選択
// 選択した値を取得
string getstringvalue = richTextBox1.SelectedText;


2.取得した内容に対して指定した文字列があるかどうか判定する
      // 指定した文字列があるかどうか判定する
if (getstringvalue.Contains("A") == true)
{
// 含まれていた場合、Aは何文字目?
int ifind = getstringvalue.IndexOf("A");
Console.WriteLine(ifind.ToString());
// Aの後が半角英数字か_でなくなったときまで読み取る
int subcount3 = 0;
while (true)
{
char a = getstringvalue[ifind + 2 + subcount3];
// 文字がアンダーバーであった場合、breakしない
if (a == 0x5f)
{
subcount3++;
}
// 文字が数字か英字であるか否か判定する
else if (char.IsLetterOrDigit(getstringvalue[ifind + 2 + subcount3]) == false)
{
break;
}
else
{
subcount3++;
}
}
getstringvalue.Substring(ifind + 2, subcount3); // Aの後に続く文字列だけ取り出す
}
3.結果を下段のリッチテキストボックスに表示


ここで問題は2と3です
2の問題はこの方法だと、最初のひとつしか拾うことができないという問題があるので、全てを拾えるような組み方が判らないので教えていただけないでしょうか?

3の問題は、下のリッチテキストボックスに1行ずつ表示させたいのですが、1行ずつ書く方法がわからないので教えていただけないでしょうか?


返信 編集キー/


管理者用

- Child Tree -