高校三年生の合唱祭で何を歌いましたか?

HEXで'0x1E','0x1D''0x00'
をそれぞれ文字型に1字で入れたいのですがどういう記述をすればよいのでしょうか。

A 回答 (8件)

参考までに補足です。


>Visual BASIC にはその機能がないため少々困難です。
キャストできますよ。

バイト配列にセットしてあげれば、VBでも操作可能です。。。
    • good
    • 0

 はい、分かりました(笑)



 それは「16進を1桁にする」という意味ではなく、単純に「数値を代入する」という意味です。

 16進数というのは、数え方が違うだけで数字は数字ですので、普通に数値として代入することができます。
 つまり、0x1e は、見た目上は4文字で構成されていますが、コンピューターはこれ4文字を1つの数字と解釈するのです。

 ――が。
 混乱の原因は、今ご覧になっている仕様書それ自体が、Visual BASIC では使えないものであるということです。
 たしかにC言語ならば、a[0]=0x1e という記述をすることができますが、これはC言語が、「一時的に文字列型を数値型として扱う」という、いわゆる「キャスト機能」を持っているから可能になることで、Visual BASIC にはその機能がないため少々困難です。

 ですので、その仕様書を渡した人に、「Visual BASIC では少し難しいと言われたんだけど」と前置きして、どうすればいいか聞いてみてください。

 それが困難な場合は別途補足ください。

この回答への補足

どうやら0x1Eはchr(30)で落ち着くようです。(社内討議の結果)
っていうかこれ以外に捉えようがないという結論にいたりました。
仕様書書いてる人が汎用の人なんではっきりいって何いっても返っ
てこない状況でして^^

windowsのプログラムに動作の説明がないやら
テーブル構造図がないやらで何考えてるのかわかんない感じです。

みなさん  本当にありがとうございました。
回答の早さにびっくりしました。またよろしくお願いします。

補足日時:2001/11/15 13:16
    • good
    • 0

wkStr = StrConv(bytAry, vbUnicode)


でなく、vbFormUnicodeで変換しなければいけないパターンもあるようです。

'0x1E','0x1D''0x00' はこの掲示板に質問をするためのダミーのデータですか。それとも現在のプロジェクトで使用してる生きたデータですか。
もし生きたデータなら、どういう値を返したら正しいのかがわかると、推測しやすいのですが、、、
もしそれが不可能なら、逆に文字列”あ”はバイトでどういう表現がなされているのかだけでもわかると、推測しやすいです。
    • good
    • 0

仕様書やつくりを見てみないとわからないけど、バイトデータから文字列を興すときは、データの入り方によって違うので、二つのパターンがあります。



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' は文字列の終了を示してると思います。
    • good
    • 0

すいません。

意味がまだ理解できていません。

一つのフィールドを'0x1E'(30)バイトで出力という意味ですか?
それともバイトデータで
'0x1E','0x1D''0x00'
により、一文字を作成するという意味ですか?

この回答への補足

後者の方です。
吐き出しのサイズはx(1)でHEX"1E"とかって書いてあります。

補足日時:2001/11/15 12:10
    • good
    • 0

 基本的に、HEX は、お書きのような形式である限り、絶対に2文字になります。


 1文字にはできません。

 強引にやるとしたら、4ビットを1文字として扱う圧縮文字を使う方法ですが、これだと目で見ることはできず、なんだかよく分からない文字化け文字になります(ただし、圧縮文字はプログラムの効率が上昇する場合もあります)。

この回答への補足

もしかしたらヘキサでないんでしょうか?
仕様書には0x1eを文字1桁のところに代入と書いてあります。

補足日時:2001/11/15 12:03
    • good
    • 0

#1と同意見しか思いうかばないのですが。

。。

どういった答えが望みなのかがよく理解できません。

それぞれを文字列1字ってどういうことですか?
もしC言語からの移行ならば、「Cだったらこうなるのに」とかいうイメージが無いと、言いようが・・・ないのでは・・・

もっと詳細な情報が欲しいです。

この回答への補足

現在accessでテキスト吐き出しをしています。
仕様書には項目は桁数1桁で'0x1E'をセットと書いてあります。

先ほどので行った場合'51'が文字列に代入されてしまってたぶんちがうと
思いました。

これでわかりますでしょうか?
よろしくお願いします。

補足日時:2001/11/15 11:54
    • good
    • 0

dim moji1 as string


dim moji2 as string
dim moji3 as string

moji1=ASC(&H1e)
moji2=ASC(&H1d)
moji3=ASC(&H00)

この回答への補足

Dim RS As String
Dim GS As String

RS = Asc(&H1E)
GS = Asc(&H1D)

RSの値が'51'
RSの値が'50'
になってしまいました。
他にないでしょうか?

補足日時:2001/11/15 11:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報