タイトル : Re^3: データ書き込みについて 投稿日 : 2007/08/01(Wed) 13:17 投稿者 : よねKEN
> その際、&H656から総資金として24ビット分、その後総資源として24ビット分の > データを書き込みたいのですが、And演算子をどう活用したらよいのか、???です。(T_T) 当初の質問を見てAnd演算子を使えばよさそうな話かな?と思ったので、 >ビット演算子Andでマスクすればよいかと。 と回答したんですが、別の方法もありますね。 (もちろんAnd演算子を使ってもできます。ただし、シフト演算子も使います) 変数ByteDataに元々のデータがありますね。 そして、&H656バイト目から3バイト(24ビット) + 3バイト(24ビット)を置き換えた上で、 このバイト配列で元ファイルを上書きしてやればよいということになるかと思います。 まずは総資金、総資源からそれぞれ3つのバイトデータに分割する必要がありますが、 以下のようにすることでも分割できますね。(総資金200000の場合) (1) 200000(10進数) → "030D40"(16進数の文字列。前ゼロ埋め) (2) 2文字ずつ区切って、"03"、"0D"、"40"を数値化 -- Andとシフトを使う方法 200000を3つのバイトデータに分割するのは以下のようにしてできます。 1〜3行目はそれぞれ1〜3バイト目の値を算出する方法です。 (200000 And &HFF0000) >> 16 (200000 And &H00FF00) >> 8 (200000 And &H0000FF) And演算子については以下からヘルプを確認してください。 http://msdn2.microsoft.com/ja-jp/library/2h9cz2eb(VS.80).aspx >>演算子についても同様に以下からヘルプを確認してください。 http://msdn2.microsoft.com/ja-jp/library/2d9yb87a(VS.80).aspx |