hsp3dish.js(HSP3.7)で文字列の読み書きを可能にする簡易モジュールを作ってみました。
任意の名前をつけて文字列データを簡単に読み書きする事が出来ます。
データの有無をチェックする機能も搭載しました。
利用規約は特にありません。どうぞご自由にどんどん使っていただけたらと思います。
最後に参考元の情報を公開してくださいましたbuhio様に心から感謝申し上げます。
#include "hsp3dish.as" ; ; hsp3dish.js(HSP3.7)用変数データ読み書きモジュール v1.0 ; 作成者:naya ; 原案:参考元:buhio様 ; 作成日:2026/3/10 ; #module "local_storage_mod" ; ; check_item(データの有無をチェックする) ; ; check_item pfn ; ; pfn=チェックするデータ名(文字列) ; ; stat(戻り値)=0(データが存在する),-1(データが存在しない) ; #deffunc check_item str pfn mref stt, 64 sdim strbuf, 1024 ptr = varptr(strbuf) exec {"const ptr = "} + ptr + {"; const str = localStorage.getItem('"} + pfn + {"'); if (str != null) { stringToUTF8Array('0', Module.HEAP8, ptr, 1024); }else{ stringToUTF8Array('-1', Module.HEAP8, ptr, 1024)}"} stt=int(strbuf) return ; ; get_item(データを読み出す) ; ; get_item pfn, vdata ; ; pfn=チェックするデータ名(文字列) ; vdata=取得したデータを入れる変数(変数) ; ; stat(戻り値)=1-?(読みだしたデータの文字数),-1(読み込みに失敗) ; #deffunc get_item str pfn, var vdata mref stt, 64 check_item pfn if (stat!=-1){ sdim strbuf, 1024 ptr = varptr(strbuf) exec {"const ptr = "} + ptr + {"; const str = localStorage.getItem('"} + pfn + {"'); if (str != null) { stringToUTF8Array(str, Module.HEAP8, ptr, 1024); }else{ stringToUTF8Array(str, Module.HEAP8, ptr, 1024)}"} vdata=strbuf stt=strlen(vdata) } else { vdata="" stt=-1 } return ; ; set_item(データを書き込む) ; ; set_item pfn, sdata ; ; pfn=チェックするデータ名(文字列) ; sdata=保存する文字列データ(文字列) ; #deffunc set_item str pfn, str sdata mref stt, 64 exec "localStorage.setItem('" + pfn + "','" + sdata + "'); stt=0 return #global ;以下サンプルスクリプト /* title "LocalStorageTest" sdim txt, 1024 ; 文字列変数 iname="test" ; データの名前 check_item iname ; データの有無をチェック if (stat == -1) { set_item iname, "AAAAAA" ; データの保存 } get_item iname, txt ; データの読み出し st=stat ;結果の表示ループ repeat stick key if key!=0 : end redraw 0 pos 0, 0 mes "vdata=" + txt mes "stat=" + st redraw 1 await 16 loop */



