HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0512
円周率バイナリデータ5未解決


円周率

リンク

2007/5/12(Sat) 18:02:43|NO.8201

はじめまして。
バイナリデータを読み込んで
18F3E4...のようにして表示する方法を
教えてください。
ファイルサイズは、2KBほどです。
よろしくお願いします。



この記事に返信する


eller

リンク

2007/5/12(Sat) 19:07:03|NO.8204

円周率さん、はじめまして。
比較的簡単なスクリプトになると思いますので部品だけ書いておきます。

■16進数に変換

mes strf("%x", 1635300)

■ファイルをロード

varname = "" ; ロード前に文字列型変数にしておく bload "filename", varname

■変数の1バイト目を読み出し

mes peek(varname, 0) ; インデックスは0から始まる

ファイルをロードして1バイトずつ16進数に変換するのが楽ではないかと思います。
各命令のパラメータなどの解説は、ワンキーヘルプなどを参照なさってください。



As

リンク

2007/5/13(Sun) 01:21:45|NO.8212

バイナリを読み込むためのモジュールがあるので、利用してみてはどうでしょう?
http://hspwiki.tm.land.to/?%A5%D5%A5%A1%A5%A4%A5%EB%A5%D5%A5%A9%A1%BC%A5%DE%A5%C3%A5%C8%B2%F2%C0%CF

しかし、書き込むことはできませんが^^;



円周率

リンク

2007/5/13(Sun) 10:47:19|NO.8217

途中までは読み込むことができました。
しかし、00 があるとそこまでしか
読み込むことができません。
00 の後も読み込む方法はあるでしょうか?
よろしくお願いします。



eller

リンク

2007/5/13(Sun) 12:14:41|NO.8221

おそらくバイナリデータの長さを調べるのにstrlen関数を使っていらっしゃるのではないか
と推測します。違っていたらごめんなさい。


strlen関数は文字列の長さを取得するための関数ですので、データ内に0があるとそこで文字列が終了したと
考えてしまいます。
文字列データの基礎なので、試しに↓を実行したりしてしっかり理解することをお勧めします。

text = "HotSoupProcessor" poke text, 3, 0 ; 4バイト目に0を書きこむと... mes text ; 4バイト目以降が文字列として扱われません mes strlen(text) ; 当然strlenも"Hot"の長さを返します
詳しくは付属マニュアルの「HSP3文字列のひみつ」(docs/hsp3str.htm)の
「文字列のしくみ」を参照してください。

peek関数は0だろうがなんだろうが大丈夫ですので、exist命令など他の手段で
バイナリデータの長さを指定すれば大丈夫なはずです。



f

リンク

2007/7/7(Sat) 02:35:58|NO.9337

age



ONION software Copyright 1997-2021(c) All rights reserved.