Tips 0で始まる数値を文字列として取得する

 「なでしこ」では、特に指定しなければ、数字だけの文字列は数値として処理されます。
 テキストに「0123」や「007」などゼロで始まる数字を入力しても、そのデータを取得すると「123」や「7」のように数値に変換され、ゼロがとれてしまいます。
 演算に使用する場合は問題ないのですが、商品コードや社員番号などそのままゼロが必要な場合もあります。

ゼロを付け足す

 データの桁数が決まっている場合、数値の前にゼロを付け足すことで、文字列として扱うことができます。
 「ゼロ埋め」命令を使って、数値を必要な桁数にそろえます。
 たとえば、データが「000001」、「012345」のような6桁の商品コードを扱うとします。

'***** サンプル *****
「6桁までの数字を入力してボタンを押してください。」と表示。
エディタAとはエディタ
ボタンBとはボタン
ボタンBのクリックした時
  エディタAを6でゼロ埋め。
  エディタCはそれ。
エディタCとはエディタ
'***** ここまで *****



クリップボードを使う

 データの桁数が不定の場合や、入力されたままを取得したい場合は、データをクリップボードにコピーすることで、そのままの状態で取得できます。
 データを変数に格納する時は、変数型を文字列にしておいたほうがいいでしょう。

'***** サンプル *****
入力文字とは文字列。
「0で始まる数字を入力してボタンを押してください。」と表示。
エディタAとはエディタ
ボタンBとはボタン
ボタンBのクリックした時
  エディタAを全選択して、エディタAをコピー
  入力文字はクリップボード取得。
  エディタCは入力文字。
エディタCとはエディタ
'***** ここまで *****



システム変数を設定する

 システム変数「ダイアログ数値変換」をオフにすることで、入力された文字列が数値として変換されないようにすることができます。「001」はそのまま「001」として扱われます。ただし計算に使用すると数値に変換されてしまいます。
 通常は「ダイアログ数値変換」はオンに設定されています。「001」は数値に変換されて「1」として扱われます。
 例えば、入力された文字列「150」と「20」を比較した場合、数値変換されて「150>20」と判断されますが、数値変換しないで文字比較すると2よりも1の方が文字コードが小さいために「150<20」と判断されます。

'***** サンプル *****
ダイアログ数値変換はオフ。
「0で始まる数字を入力してボタンを押してください。」と表示。
エディタAとはエディタ
ボタンBとはボタン
ボタンBのクリックした時
  エディタCはエディタA。
エディタCとはエディタ
'***** ここまで *****



コメント

名前:
コメント:
最終更新:2012年11月05日 20:53