VC++: ソースコードから16進数のみ抽出
前略
"C#: ソースコードから16進数のみ抽出"の質問をしたものです。 この質問にからんだプログラムは.NET VC++ 2012で製作中です。 最近はC#をやっている人が圧倒的に多くなっていることから回答を得やすいC#で回答をもらい C#のプログラムをC++に変更して使おうと考え C#で質問した次第です。
C#の場合と同様に <摘出前>の文字列を データだけの<摘出後>の文字列にしたいと思っています。先ほどから それぞれご教示いただいたC#のコードをもとに C++化した 摘出方法Aと摘出方法Bについてトライしているのですが
(1)摘出方法Aはコンパイルはできるが ”MatchはResultを呼びだせません"と云う実行エラーがでる。
(2)摘出方法Bは ”stringは定義されていない識別子です”と云うコンパイルエラーがでる。
といった状況で困っています。先ほどからいろいろやっているのですがうまくゆきません。
コードの修正等 具体的にアドバイスいただければ幸いです。
以上、よろしくお願いします。
<摘出方法A>
Regex^ re = gcnew Regex("\{(?<moji>[0-9A-Fa-fx\r\s,]+)\}");
String^ st = re->Match(richTextBox1->Text)->Result("${moji}")->TrimStart()->TrimEnd();
MessageBox::Show(st);
<摘出方法B>
Regex^ r = gcnew Regex("0x[0-9a-fA-F][0-9a-fA-F],( |\r\n)", System::Text::RegularExpressions::RegexOptions::IgnoreCase);
Match^ m = r->Match(richTextBox1->Text);
richTextBox1->Text = string->Empty;
while (m->Success)
{
richTextBox1->Text += m->Value;
m = m->NextMatch();
}
//-------抽出前--------------
#include "Graphics.h"
#ifdef USE_GOL
#if(GRAPHICS != 0x0306)
#warning "use Graphics Library version 3"
#endif
#if defined __XC32__
extern const char __GOLFontDefault[] ;
const FONT_FLASH GOLFontDefault =
{
(FLASH | COMP_NONE),
};
const char __GOLFontDefault[] =
{
0x00,
0x00,
0x1C, 0x00,
0x7E, 0x00,
0x1B, 0x00,
0x10,
0x94, 0x01, 0x00,
0x10,
0xCA, 0x01, 0x00,
0x11,
0x00, 0x02, 0x00,
0x11,
0x51, 0x02, 0x00,
0x05,
0xA2, 0x02, 0x00,
};
#endif
//-------抽出後-------------
0x00,
0x00,
0x1C, 0x00,
0x7E, 0x00,
0x1B, 0x00,
0x10,
0x94, 0x01, 0x00,
0x10,
0xCA, 0x01, 0x00,
0x11,
0x00, 0x02, 0x00,
0x11,
0x51, 0x02, 0x00,
0x05,
0xA2, 0x02, 0x00,
お礼
すばやい回答ありがとうございました!!!