mesboxの説明には、
---------------------------------------------------------------------------------------------------------
p5で、入力できる最大文字数を指定することができます。
p5が0の場合は、そのバージョンのWindowsで扱える最大文字数になります。
p5が省略されるかマイナス値の場合には、p1で指定された変数に格納できる最大文字数が自動的に割り当てられます。
---------------------------------------------------------------------------------------------------------
とありますが、
省略、-1、32768以上を指定しても、32767文字程度までしか入力できず(コピペも、キーボードから打ち込んでも無理)
0を指定すると32767文字を超える物も全文ペーストでき、さらにキーボードから打ち込む事も可能ですが、
strlenで文字数をチェックするとは32767文字と表示されてしまいます。
このままnotesaveで保存しても、32767文字程度までしか保存できませんでした。
また、csv検索等の命令も、32767文字程度までしか検索対象になりませんでした。
しかし、ファイルからデータを読み込んだ変数を指定してmesboxを作成した場合は、strlenで正常に文字数が取得可能で、
このままnotesaveすると全文保存でき、csv検索等の命令も全行検索対象となりました。
ただし、予め作成してあったmesboxの内容をobjprm命令で変更した場合は、32767文字程度までしか保存できないようです。
ファイルから読み込めば2.8MB程度の文字列を正常に保存可能でしたが、
これをmesboxにコピペ→正常に保存したいのですが、(できればCSV検索等の命令も使用したい)どうすれば良いでしょうか?
当方、HSP以外の言語や、DLLやモジュール等を作成できる知識はありません。
よろしくお願い致します。
以下使用したスクリプトです
sdim a,300000 mesbox a,640,390,1,0 objsize 640,30 button "文字数チェック",*check button "ファイルから読み込む1 (mexboxオブジェクトを一度削除して、データを読み込んだ変数でmesbox再作成)",*file_load1 button "ファイルから読み込む2 (objprmでmesboxの内容を読み込んだデータに書き換える)",*file_load2 stop *check dialog "文字数:"+strlen(a) ;notesel a : notesave "a.txt" stop *file_load1 dialog "txt",16 if stat=1 : notesel a : noteload refstr : clrobj 0,0 : pos 0,0 : mesbox a,640,390,1,0 stop *file_load2 dialog "txt",16 if stat=1 : notesel a : noteload refstr : objprm 0,a stop