解決済みの質問
4人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(7件中 1~5件目)
はい、分かりました(笑)
それは「16進を1桁にする」という意味ではなく、単純に「数値を代入する」という意味です。
16進数というのは、数え方が違うだけで数字は数字ですので、普通に数値として代入することができます。
つまり、0x1e は、見た目上は4文字で構成されていますが、コンピューターはこれ4文字を1つの数字と解釈するのです。
――が。
混乱の原因は、今ご覧になっている仕様書それ自体が、Visual BASIC では使えないものであるということです。
たしかにC言語ならば、a[0]=0x1e という記述をすることができますが、これはC言語が、「一時的に文字列型を数値型として扱う」という、いわゆる「キャスト機能」を持っているから可能になることで、Visual BASIC にはその機能がないため少々困難です。
ですので、その仕様書を渡した人に、「Visual BASIC では少し難しいと言われたんだけど」と前置きして、どうすればいいか聞いてみてください。
それが困難な場合は別途補足ください。
投稿日時 - 2001-11-15 13:12:31
補足
どうやら0x1Eはchr(30)で落ち着くようです。(社内討議の結果)
っていうかこれ以外に捉えようがないという結論にいたりました。
仕様書書いてる人が汎用の人なんではっきりいって何いっても返っ
てこない状況でして^^
windowsのプログラムに動作の説明がないやら
テーブル構造図がないやらで何考えてるのかわかんない感じです。
みなさん 本当にありがとうございました。
回答の早さにびっくりしました。またよろしくお願いします。
投稿日時 - 2001-11-15 13:16:40
wkStr = StrConv(bytAry, vbUnicode)
でなく、vbFormUnicodeで変換しなければいけないパターンもあるようです。
'0x1E','0x1D''0x00' はこの掲示板に質問をするためのダミーのデータですか。それとも現在のプロジェクトで使用してる生きたデータですか。
もし生きたデータなら、どういう値を返したら正しいのかがわかると、推測しやすいのですが、、、
もしそれが不可能なら、逆に文字列”あ”はバイトでどういう表現がなされているのかだけでもわかると、推測しやすいです。
投稿日時 - 2001-11-15 13:10:17
仕様書やつくりを見てみないとわからないけど、バイトデータから文字列を興すときは、データの入り方によって違うので、二つのパターンがあります。
Dim bytAry(0 To 1) As Byte
Dim wkStr As String
bytAry(0) = &H1E
bytAry(1) = &H1D
'パターン1
wkStr = bytAry
'パターン2
wkStr = StrConv(bytAry, vbUnicode)
こんな感じかな?
で、おそらく'0x00' は文字列の終了を示してると思います。
投稿日時 - 2001-11-15 12:21:19
OKWaveのオススメ
おすすめリンク