[リストへもどる]
一括表示
タイトルcmnRegReplaceについて
記事No124
投稿日: 2006/11/27(Mon) 23:16
投稿者営々
こんにちは。

cmnRegReplaceを「2回続けて」実行した際の戻り値について教えていただきたいのですが…

テスト用に下記のようなソースファイルを書いてみました。

1番目の関数の戻り値が0でなく(=置換成功)、2番目の関数の戻り値が0(=置換失敗)となることを期待していたのですが、何故か2番目の関数の戻り値も0でない値が返ってきてしまいます(しかも、文字列変数pCrlfReplacedにもちゃんと置換語の文字列が入っている)

私がなにか勘違いしているのでしょうか…?

if ((m_pICmnPilot->cmnRegReplace (lpszPage, "\x0D+\x0A", "\n", &pCrlfReplaced, "g")) != 0)
{
stPage = _ConvToString (pCrlfReplaced);
// 改行コードが「\r\r\n」となっているページを「\n」の改行コードに変更する
}

if ((m_pICmnPilot->cmnRegReplace (stPage.c_str(), "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "\n", &pCrlfReplaced, "g")) != 0)
// テストで入れた項目
{
stPage = _ConvToString (pCrlfReplaced);
// もし置換が成功していたら、デバッグ情報を出力する
ofstream outfile;
outfile.open("debug.txt");
outfile << stPage;
}

タイトルRe: cmnRegReplaceについて
記事No125
投稿日: 2006/12/01(Fri) 15:11
投稿者DECO
営々さん、こんにちは。

返信が遅くなりすみません。。。 m(_ _;)m

のちほど調べますので、今少しお待ちください。

DECO

タイトルRe: cmnRegReplaceについて
記事No126
投稿日: 2006/12/01(Fri) 17:04
投稿者DECO
営々さん、こんにちは。

cmnRegReplace の戻り値の解説が間違っていました。
正しくは「置換できたかどうか」ではなく「処理が成功したかどうか」です。
(仕様を修正しておきました。)

置換できたかどうかは戻り値で判別することができませんので、必要であれば置換前と置換後を比較していただくということになります。

DECO