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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
1229
takayaバイナリ編集12解決


takaya

リンク

2010/12/29(Wed) 11:07:14|NO.36419

HSPでこのようなことできますか?

http://www.vector.co.jp/soft/win95/util/se079072.html

出来ればどのようにしたらいいか教えてください。

お願いします。



この記事に返信する


skyblue

リンク

2010/12/29(Wed) 11:56:25|NO.36421

根気さえあればなんでもできる。



ORZ

リンク

2010/12/29(Wed) 11:59:47|NO.36422

>出来ればどのようにしたらいいか教えてください。
根性入れていろいろ調べればできるだろう。



takaya

リンク

2010/12/29(Wed) 19:11:35|NO.36426

bload
peek
を使うのはわかるのですが・・・

どうしても途中で 終了コード? があるせいか
すべて開く前に終わってします。



hexa.hemi

リンク

2010/12/29(Wed) 19:40:49|NO.36427

>すべて開く前に終わってします。
考えられる原因は下の二つですね。
・bloadのp2に読み込むサイズを指定している
 bloadはp2で指定したサイズだけ読み込みます。
・strlen関数を使用している
 strlenなどの関数は終了コード(0x00)までのバイト数で取得しているため、
 この関数ではなく、bloadの後のstrsizeでバイト数を取得しないとうまく
 バイト数が取得できません。



info

リンク

2010/12/29(Wed) 20:36:55|NO.36428

bload を使う前に、バッファを確保していないとか?
bload の第二引数に 指定する変数は、指定したサイズ分だけあらかじめ確保されている
必要が有ります。bloadは自動確保してくれません。


dialog "",16,"" if stat=1 { exist refstr fSize=strsize bload refstr,buffA,fSize,0 mes "サイズ確保無し : filesize = "+fsize+"byte : opensize = "+strsize +"byte" sdim buffB,fSize bload refstr,buffB,fSize,0 mes "サイズ確保有り : filesize = "+fsize+"byte : opensize = "+strsize +"byte" }



takaya

リンク

2010/12/30(Thu) 11:49:10|NO.36432

すみません。

言い忘れていました。

bmp , wav などを開く場合でした。



通りすがり

リンク

2010/12/30(Thu) 19:21:51|NO.36439

>どうしても途中で 終了コード? があるせいか
>すべて開く前に終わってします。

という発言を受けて、ファイルの内容を全て変数に読み出す方法を
すでにhexa.hemiさんとinfoさんが回答してくれています。
まずはその情報を元に自身のスクリプトを見直し、
どういう結果になったかを書き込むのが先ではないですか?

それでも原因が分からない場合は、このままではキリがないので
どういうスクリプトで上手く行かなかったのかを示した方が良いでしょう。



KA

リンク

2011/1/1(Sat) 09:46:43|NO.36467

多分「バイナリデータ」と「文字データ」の違いが分かっていないのでは?
まず、そこから勉強してください。

1バイト毎に数値として読み出して
 数値が  0なら、文字列の00に
 数値が 10なら、文字列の0Aに
 数値が255なら、文字列のFFに
成るように考えてください。



takaya

リンク

2011/1/1(Sat) 13:47:17|NO.36477

KAさんへ
それはわかっています・・・



てれてれ

リンク

2011/1/1(Sat) 19:19:36|NO.36480

通りすがりさんのレス見ましたか?
見たのであればなぜスルーしたのですか?



ESZET

リンク

2011/1/1(Sat) 20:25:08|NO.36482

スルーぇ



takaya

リンク

2011/1/14(Fri) 18:38:04|NO.36605

とても遅くなりました。

すみませんでした。

皆様のおかげで解決しました。

以下が今回作成したスクリプトです。


#module #deffunc peekt2 var a,var b,int c,int d a="" repeat d a+=""+strf("%02X",peek(b,c+cnt))+" " a+="" e=cnt/16 f=cnt-e*16 if f=15:a+="\n" title ""+cnt+" / "+d+"" await 0 loop return #global dialog "",16,"" if stat=1 { exist refstr fSize=strsize sdim buffB,fSize bload refstr,buffB,fSize,0 } peekt2 buffC , buffB , 0 , fSize font "MS ゴシック",18 objmode 2 pos 0,1 mes "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F" pos 0,20 mesbox buffC , 640 ,460 , 5 , -1

本当にありがとうございました。



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