c++ builder XE4, 10.2 Tokyo > String > 英数字文字列のみ返す処理 > getAlphaNumericString()


動作確認
C++ Builder XE4
Rad Studio 10.2 Tokyo Update 2 (追記: 2017/12/27)

タブやエスケープシーケンスなどのない、英数字のみからなる文字列を取得したい。

ただし、括弧も取得したい。

手抜きでIndy使用。

#include <IdGlobal.hpp> // IsAlphaNumeric();
...


static String getAlphaNumericString(String srcStr)
{
    String res;
    String code;
    for(int idx=1; idx <= srcStr.Length(); idx++) {
        code = srcStr.SubString(idx, 1);
        if (IsAlphaNumeric(code.c_str())) {
            res = res + code;
        }
        if (code.Pos(L"(") > 0 || code.Pos(L")") > 0) {
            res = res + code;
        }
    }
    return res;
}


void __fastcall TForm1::Button1Click(TObject *Sender)
{
    String work = L"aaa-bbb\tddd(abc)";

    String res = getAlphaNumericString(work);

    Memo1->Lines->Add(res);

}
結果(Memo1内)
aaaabbbddd(abc)