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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
1130
チーズバイナリデータのサイズ3解決


チーズ

リンク

2006/11/30(Thu) 21:48:00|NO.3881

はじめまして
pokeなどで書き込んだバイナリデータのサイズを読み取る方法はないでしょうか
strlenで求められるかなと思ったんですけどなぜか大きさがうまくあいません



この記事に返信する


七次元

リンク

2006/12/1(Fri) 05:31:33|NO.3890

こんにちは、七次元です。
質問の意味はpokeで書き換え後のバッファサイズを知りたい。っということで合ってますか?
strlenはテキストデータしか長さを求められません。
それでテキストデータはバイナリ値で'00'が終点という決まりになっています。
つまりstrlenで調べるバイナリデータの途中に'00'があったらそこまでのサイズしか返ってきません。
自分も一度Xor暗号化の時に同じことでサイズが変だと思いました。
自分が質問したときに解決策は出なかったのでpoke前から計算で求めるしかないようです。
(poke前と後でサイズが同じならいいけど)



kz3

リンク

2006/12/1(Fri) 06:51:14|NO.3893

>七次元さん
>自分が質問したときに解決策は出なかったのでpoke前から計算で求めるしかないようです。

それは解決策があると言えるのではないでしょうか?
少なくとも、sdimで明示的にバッファを確保すれば初期バッファサイズは分かりますし、
memexpandで拡張する時も、現時点のバッファサイズに拡張分のサイズを足せば拡張後のバッファサイズも分かります。

書き込むたびに有効なバイナリデータの位置をカウントすれば、おのずとバイナリデータのサイズも分かります。

# というか、HSPは自己が管理するバッファサイズは把握しているが、
# プログラムが利用するバイナリデータのサイズには関与できないのでは?
# バッファサイズとバイナリデータのサイズは必ずしも一致しないので。

というより、pokeなどで書き込む前にバッファサイズが分かっていないと、プログラマ側でバッファオーバーフローを回避できないと思います。
ですから、
>pokeなどで書き込んだバイナリデータのサイズを読み取る方法
書き込んだ後にバイナリデータのサイズを取得しても遅いと思います。

よって最善の方法は自己管理だと思います。

# GENKIさんの書き込みは解決に繋がらなかったのかな...。



七誌

リンク

2006/12/1(Fri) 16:02:03|NO.3900

なるほど strlenはそういう意味だったんですね

バイナリデータは最初から決めておかないといけないんですか
区切りをきめて、ここまで というふうにしていたのではだめですね

教えてくれてありがとうございます



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