【解決方法】textBox からテキストを取得し、それを dword 値として使用する


皆さんこんにちは!

私のプロジェクトは Windows フォーム アプリケーションです (Microsoft Visual C++ Studio 2010 を使用)。
テキストボックスを作成しました。 その textBox の下に 3 つのラジオ ボタンがあります (名前は Hex、Dec、Bin)。 私が必要とするのは、ユーザーがラジオボタンをクリックして与えられたオプションの1つを選択した後、彼はいくつかの数字を入力することです(Binを選択して11100を入力するとしましょう)。 次に、Dec をクリックすると、テキスト ボックスの数値が 28 (10 進数の 11100) に変更されます。 16 進数をクリックすると、数値が 1C (11100 の 16 進数) に変更されます。

ここが要点です。ユーザーが Hex を選択して 1C を入力したと仮定しましょう。 そのテキストを文字列として取得した後、DWORD d のような DWORD 型の変数を宣言する必要があります。 テキストの 16 進数値を保持します。 ユーザーが入力する番号がわからないので、どうすればよいでしょうか。 彼が 1C に入ることがわかっていれば、このように DWORD d = 0x1C と宣言できます。

これで私を助けてください!

どんな助けでも大歓迎です!

少し早いですがお礼を!

解決策 1

コンセプトが非常に基本的に間違っているため、問題があります。 として宣言された変数 DWORD を 10 進数または 16 進数にすることはできません; それはバイナリです。 数字を表す文字列のみが可能です。 また、変数の宣言はコンパイル時のもので、 そのため、いくつかのアクションに応答して、1 つまたは別のものを宣言したり、初期化したりすることはできません。.

あなたは単純なことを理解していないので、複雑なものを作ろうとしています。 いくつかの文字列を解析して、使用する 1 つの型だけにする必要があります。 使用 System::UInt32::Parse また System::UInt32::TryParse. ユーザーが何でも入力できるようにします (処理によって不要な文字を除外できます) System.Windows.Forms::Control::KeyPress テキストを解析して uint 値を使用する必要がある場合のみ。

-SA

解決策 2

実際の基数選択に従ってテキストを数値に変換するパーサーと、クリックされた基数ボタンに従って数値を表すテキスト文字列を作成する関数を作成する必要があります。

テキストを数値に変換するには、C 関数を見てください。 strol() ここで、数値の基数を指定できます。

10 進数と 16 進数からテキストを作成するには、C スタイルの書式仕様を使用します。 printf() 機能。 バイナリ表現を使用したテキスト文字列の作成は、自分で行う必要があります (ただし、非常に簡単です)。

コメント

タイトルとURLをコピーしました