07-10-2020 12:09 AM
LabVIEWでバイナリファイルを作成しました。
(文字列の二次元配列をクラスタにしてバイナルファイルに書き込み)
質問1
出来上がったバイナリファイルをバイナリエディタで開くと
先頭から8バイト目までは配列の行と列のサイズですが、
9バイト目~12バイト目は何が入っているのでしょうか?
質問2
配列データを見ると文字コードの後方に数字が付属しますが、この数値の読解方法はありますでしょうか。
例)
配列の1データが「あいうえお」の場合:
82A082A282A482A682A80E000000
となる。後ろの0E000000はバイト数?(14バイト=0E?)
しかし、他の文字列を入れたときにこの計算が成り立たないので
他にルールがあるのではないかと思うのですが、
このルールがありましたら教えて頂けないでしょうか。
よろしくお願いいたします。
解決済! 解決策の投稿を見る。
07-13-2020 02:49 AM
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 0123456789ABCDEF
----------+-------------------------------------------------------------------
00000000: 00 00 00 04 82 A0 82 A2 -- -- -- -- -- -- -- -- ........
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 0123456789ABCDEF
----------+-------------------------------------------------------------------
00000000: 00 00 00 04 82 A0 82 A2 00 00 00 04 82 A0 82 A2 ................
00000010: 00 00 00 04 82 A0 82 A2 00 00 00 04 82 A0 82 A2 ................
2行3列の文字列配列
[0 0] = 「あい」、[0 1] = 「うえ」、[0 2] = 「おか」、
[1 0] = 「きく」、[1 1] = 「けこ」、[1 2] = 「さし」
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 0123456789ABCDEF
----------+-------------------------------------------------------------------
00000000: 00 00 00 04 82 A0 82 A2 00 00 00 04 82 A4 82 A6 ................
00000010: 00 00 00 04 82 A8 82 A9 00 00 00 04 82 AB 82 AD ................
00000020: 00 00 00 04 82 AF 82 B1 00 00 00 04 82 B3 82 B5 ................
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 0123456789ABCDEF
----------+-------------------------------------------------------------------
00000000: 00 00 00 0A 82 A0 82 A2 82 A4 82 A6 82 A8 -- -- ..............
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 0123456789ABCDEF
----------+-------------------------------------------------------------------
00000000: 00 00 00 01 00 00 00 02 00 00 00 0A 82 A0 82 A2 ................
00000010: 82 A4 82 A6 82 A8 00 00 00 00 -- -- -- -- -- -- ..........
07-13-2020 09:00 PM
Emboar_Dymax様
コメントありがとうございます。
How LabVIEW Stores Data in Memoryのリンク先
こういう情報を探しておりました。
確認すると、私の認識間違いでした。
頭の4バイトがそのセルのバイト数、後から続くのがデータなんですね。
その逆でデータの後にバイト数なのかと勘違いしておりました。
また、リトルエンディアンにしていました。よって
あいうえお0E000000
の0Eは次のセルのバイト数でした。
文字列の配列をバイナリファイルに書き込むのと
文字列の配列をバンドルして(クラスタにして)バイナリファイルに書き込むのとで
ファイルに違いはありませんでした。
情報ありがとうございました!