none
文字列の扱いについて RRS feed

  • 質問

  • VB6の文字列についてお聞きしたいことがあります。

    プログラムのListItemオブジェクトにkey値をセットする所で実行時エラーが表示されます。

    エラー内容:

    実行時エラー '35603'

    無効なキーです。

     

    自分で調べた所、key値には文字列しかセットできないと言うことはわかっておりkey値に文字列をセットしているようにプログラムを組んでいます。

    しかし、有る値をkey値にセットすると実行時エラーが起きます。

    その値というのが「数値D数値」「数値E数値」という場合です。

    具体的に言うと「06D01」「06E01」というような値です。

    「06A01」というような真中の英文字をD,E以外にするとエラーは起こりません。

    IsNumeric関数で「06A01」「06B01」などを判定してやるとfalse、「06D01」「06E01」で判定してやるとtrueが帰ってきます。

    なぜ同じような文字列で違いがあるのか私にはわかりません。。。

    このことについてわかる方がいらっしゃいましたらご教授お願い致します。

    未熟者ですが、どうかよろしくお願い致しますm(__)m

    2006年7月31日 5:08

すべての返信

  • euro_f さん、こんにちは。

     euro_f さんからの引用
    その値というのが「数値D数値」「数値E数値」という場合です。
    具体的に言うと「06D01」「06E01」というような値です。
    「06A01」というような真中の英文字をD,E以外にするとエラーは起こりません。
    なぜ同じような文字列で違いがあるのか私にはわかりません。。。

    「指数」 がそういう表現なのです。

    2006年7月31日 5:45
  • じゅんぬねっとさんご回答ありがとうございました!!

    なるほど、「指数」表現になっていたのですか。。。

    あつかましいこととわかっておりますが、もう一点だけ質問させてください。

    指数について調べたのですが、私の力では解決することができませんでした。

    「06D01」「06E01」を文字列にしてListItemオブジェクトのkey値にセットさせる方法はないでしょうか?

    ListItem.key = CStr("06D01")

    のように行なっても数値で判定されてしまいます。

    真中の英文字を指数判定されないような文字列(例えば06DD01)のように無理やり処理させることもできるのですが、プログラム的に良くないと私は思っておりますのでどうにか文字列に変換する方法はないでしょうか?

     

    もうしわけありませんが何卒、よろしくお願い致しますm(__)m

    2006年7月31日 7:53
  • euro_f さん、こんにちは。

     euro_f さんからの引用
    「06D01」「06E01」を文字列にしてListItemオブジェクトのkey値にセットさせる方法はないでしょうか?
    ListItem.key = CStr("06D01")
    のように行なっても数値で判定されてしまいます。

    文字列型でも、数値で判定されているようであれば、無理でしょうね。

    真中の英文字を指数判定されないような文字列(例えば06DD01)のように無理やり処理させることもできるのですが、プログラム的に良くないと私は思っておりますのでどうにか文字列に変換する方法はないでしょうか?

    そのような方法ではなく、むしろ最初の文字が数値として扱えないようにすべきだと思います。

    単純に、先頭が '数値' でなければ良いわけです。
    たとえば、'K06D01' などであれば問題ないでしょう。

    2006年7月31日 7:59
  • じゅんぬねっとさんお返事ありがとうございます!

    >文字列型でも、数値で判定されているようであれば、無理でしょうね。

    やはり無理ですか。。。

    しかし、じゅんぬねっとさんの教えていただいた方法で対処したいと思います。

     

    未熟者の質問につきあっていただいて、本当にありがとうございましたm(__)m

     

    2006年7月31日 11:55
  • まあ、キーという意味では数字の羅列よりは、英字も組み合わせた方が理想的だと思います。

    それと、わたしは、「じんぬねっと」 ではなく、「じんぬねっと」 ですので、
    表題どおり "文字列の扱い" には注意してくだされ~w

    # このパターンの間違われ方ははじめてかもw

    2006年8月1日 3:56
  •  じゃんぬねっと さんからの引用

    それと、わたしは、「じんぬねっと」 ではなく、「じんぬねっと」 ですので、
    表題どおり "文字列の扱い" には注意してくだされ~w

    じゃんぬねっとさん

    すいませんでしたっ(>_<)

    私としたことがせっかくご回答いただいた方の名前を間違えてしまうとは。。。

    ソースコードの文字列でも問題があり、こちらの文字列でも問題あり、大変お恥ずかしいです^_^;

    今後「文字列」には気をつけたいと思います(^^)

    2006年8月1日 9:54