空行の時は文字列を付加しない方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
MILD

空行の時は文字列を付加しない方法

#1

投稿記事 by MILD » 14年前

richTextBox・・・変換前データ
richTextBoxResul・・・結果出力
textBoxCovert・・・付加文字

変換前データの各行ごとに付加文字をつけて結果出力したいです。
但し変換前データの空行の時は付加文字をつけたくないです。

空行でも関係なく付加することは出来たのですが
空行の時の処理がイマイチできません。

コード:

 ※ 関係なしに各行に追加版

	// 初期化
	this->richTextBoxResult->Text = "";
	this->richTextBoxResult->Text = this->richTextBox->Text->Replace( "\n", this->textBoxCovert->Text +"\n" ) + this->textBoxCovert->Text;

 ※ 1行ずつ読み込んで空行か判定してから処理する版
	
	// 初期化
	this->richTextBoxResult->Text = "";
	
	//TextBox1に入力されている文字列から一行ずつ読み込む
	//文字列(TextBox1に入力された文字列)からStringReaderインスタンスを作成
	System::IO::StringReader^ rs = gcnew System::IO::StringReader(this->richTextBox->Text);

	//ストリームの末端まで繰り返す
	while (rs->Peek() > -1){
		//一行読み込んで表示する
		if( rs->ReadLine() == "" || rs->ReadLine() == "\n" ) this->richTextBoxResult->Text += "\n";
		else this->richTextBoxResult->Text += rs->ReadLine() + this->textBoxCovert->Text + "\n";
	}

	rs->Close();
多分、ifの判定がおかしいかと思うのですがソースを見ては頂けないでしょうか。

MILD

Re: 空行の時は文字列を付加しない方法

#2

投稿記事 by MILD » 14年前

付加文字→AAA

----------
変換前
----------
あああ
いいい

ううう
----------

----------
変換後
----------
あああAAA
いいいAAA

うううAAA
----------

みたいな感じにしたいです、
図が下手で申し訳ないです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 空行の時は文字列を付加しない方法

#3

投稿記事 by softya(ソフト屋) » 14年前

WindowsフォームのC++/CLIのコードだと思いますが、どうイマイチなのでしょうか?
イマイチの詳細を教えてください。
あと、デバッガで問題の部分の動きは調べられましたか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: 空行の時は文字列を付加しない方法

#4

投稿記事 by ISLe » 14年前

とりあえず見ただけですが。
rs->ReadLine()の度に1行読み込んでしまうので、「一行読み込んで表示する」とコメントが書かれているところで最大3行読み進んでしまいますね。
あとReadLineは改行を読み込まないので『改行のみ』の判定は不要です。

MILD

Re: 空行の時は文字列を付加しない方法

#5

投稿記事 by MILD » 14年前

出来ました!!!
ReadLineの仕方が悪かったのですね。
変数に入れたところ問題なく出来ました。

助かりました!!
ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る