tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル文字列のバイト取得
記事No11876
投稿日: 2008/03/25(Tue) 04:25
投稿者
プログラムを組むのは10年ぶりなのですが

C言語で
char xx[10]="クレヨン0"
(ShiftJISのバイナリで 0x83 0x4E 0x83 0x8C 0x83 0x88 0x83 0x93 0x30 0x00)


xx[5]の0x88をVB6で取得したいのですがよくわかりません

またC言語のunionでint とChar2Byteを変換するような機能はありますか?
int ← 0x834E
char x[0] ← 0x83
char x[1] ← 0x4e

よろしくお願いいたします

[ツリー表示へ]
タイトルRe: 文字列のバイト取得
記事No11878
投稿日: 2008/03/25(Tue) 09:59
投稿者よねKEN
> C言語で
> char xx[10]="クレヨン0"
> (ShiftJISのバイナリで 0x83 0x4E 0x83 0x8C 0x83 0x88 0x83 0x93 0x30 0x00)
>
> で
> xx[5]の0x88をVB6で取得したいのですがよくわかりません

そのデータはVB6でどのように保持しているのでしょうか?
(そのデータはどこから取得するのですか?)
例えば、バイト配列bに保持しているとすると、a(5)で取得できます。

Shift_JISのファイルに書かれているデータなのであれば、
バイナリファイルの読み取りの一般的な処理です。
http://hanatyan.sakura.ne.jp/vbhlp/fil_index.htm
この辺を参考にしてはいかがでしょう。

> またC言語のunionでint とChar2Byteを変換するような機能はありますか?
> int ← 0x834E
> char x[0] ← 0x83
> char x[1] ← 0x4e

ありませんので計算してください。
例えば、256で除算した商(\演算子で)と余り(Mod演算子で)を求めます。

[ツリー表示へ]
タイトルRe: 文字列のバイト取得
記事No11885
投稿日: 2008/03/25(Tue) 18:32
投稿者戸豚
unionとはちょっと違いますが、Typeでデータ構造体を定義して、Lsetで代入すれば似たような処理はできます。

Type WORD_T
    Value As Integer
End Type

Type BYTE2_T
    Binary(1) As Byte
End Type

Public Function getImage(ByVal lWord As Integer) As Byte()
    'Word/__int16(16Bit整数型)のバイトイメージを取得する
    Dim ret() As Byte
    Dim wImg As WORD_T
    Dim bImg As BYTE2_T
    wImg.Value = lWord
    LSet bImg = wImg
    getImage = bImg.Binary
End Function

[ツリー表示へ]
タイトルRe: 文字列のバイト取得
記事No11887
投稿日: 2008/03/26(Wed) 00:31
投稿者
よねKEN様
戸豚様
さっそく調べさせて頂きます。

現役から退いて10年以上で...最後に使ったのがMS-C Ver5か6の時代で..
なかなか今では敷居が高くなっています。
ありがとうございました

[ツリー表示へ]