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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0218
ポッポmesboxについて6解決


ポッポ

リンク

2010/2/18(Thu) 14:57:28|NO.30705


sdim memo,65535 exist "memo.dat" if strsize=-1{ mojigata_hensu="" bsave "memo.dat",mojigata_hensu } bload "memo.dat",memo screen 0,220,220,0,200,200 pos 10,10 mesbox memo,200,200,5,65535 onexit goto *owari stop *owari memo_len=strlen(memo) bsave "memo.dat",memo,memo_len end
上のスクリプトを実行し、例えばボックスに50000バイトの文字列を貼り付けた時
ボックスには全て表示されますが、デバックウインドウで確認すると
変数には32767バイトしか格納されてません。
この事で、50000バイトまるまるのデータを残せませんし、再現できません。
バージョンが3.2になってなんらかの制限が設けられたのでしょうか。



この記事に返信する


inovia

リンク

2010/2/18(Thu) 23:17:18|NO.30728

こちらの投稿が参考になるかも
http://hsp.tv/play/pforum.php?mode=all&num=29606



ポッポ

リンク

2010/2/19(Fri) 14:28:03|NO.30735

ご返信ありがとうございます。
一通り目を通して、こちらのケースに照らして検証し、
色々と勉強になりましたが、こちらの問題の解決には至りませんでした。
mesboxがヘルプの通りに動作してくれないことで困っております。
出来れば具体的な原因を教えていただければと思います。
こちらの環境はwinXPです。hspは3.2です。

因みに、変数memoのバッファはキチンと確保されています。
ただ文字だけが32767バイトしか格納されないのです。



inovia

リンク

2010/2/19(Fri) 15:11:49|NO.30736

このサンプルは32767バイト以上の文字をエディットボックスに表示・保存します。


screen 0,220,220,0,200,200 pos 10,10 notesel memo exist "memo.dat" if strsize=-1{ notesave "memo.dat" } noteload "memo.dat" // ダミー変数を使用 dummy="":mesbox dummy,200,200,5,65535 hEdit=objinfo(stat,2) sendmsg hEdit,0x000C,strlen(memo),varptr(memo) onexit goto *owari stop *owari sendmsg hEdit,0x000E,0,0 memo_len = stat sdim memo,memo_len+1 sendmsg hEdit,0x000D,memo_len+1,varptr(memo) notesave "memo.dat" end
本当はコチラでした
http://hsp.tv/play/pforum.php?mode=all&num=29646



ポッポ

リンク

2010/2/19(Fri) 18:43:32|NO.30738

ご丁寧、かつ迅速なお返事ありがとうございます。
スクリプトも勉強になりました。
今後の作成にも応用させていただきます。ありがとうございます。
ただ、mesboxに貼り付けた時点で、mesboxの仕様に有るように、
何らかの変数に、そのまま内容が格納されていて欲しいのです。
hsp2.61では問題なく動作していた命令なのですが…

実は、その格納された内容に対して処理を行いたいのです。
今のままでは、ボックスのテキストの内容に変更がある度に
ご教授頂いた処理を通さなければなりません。

具体的な原因のご教授がないことから、この命令は3.2では仕様どおりに
動作しないものと割り切るしかないのでしょうか。
親切なご教授を頂きながらこんなお返事で申し訳ありません。



KA

リンク

2010/2/19(Fri) 19:57:22|NO.30742

適当に50000文字程度いれて、デバッグウインドウをよく見ると

>>変数名:memo
>>型:str
>>配列:(1,0,0,0)
>>モード:1
>>使用サイズ:4
>>バッファサイズ:65535
>>(内容32766bytesの一部を表示しています)

”内容32766bytesの一部”・・・この時点でアウトです。



ポッポ

リンク

2010/2/20(Sat) 00:40:46|NO.30749

ご返答ありがとうございます。
はい、投稿にも書いてありますように、
それを確認して投稿させていただいたのです。
なにか原因があるのか?
3.2では何かしなければならないことがあるのか?

「この命令mesboxは3.2では仕様どおりに動作しない」を
結論として解決とさせていただきます。

製作の方はinovia様にご教授頂いたスクリプトを
処理の前に都度通す方向で進めたいと思います。

inovia様、KA様ありがとうございました。



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