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


HSPTV!掲示板


未解決 解決 停止 削除要請

2026
0310
naya「hsp3dish.js(HSP3.7)用文字列データ読み書きモジュール」を作成しました!2解決


naya

リンク

2026/3/10(Tue) 20:39:33|NO.104809

みなさんこんにちは!

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 */



この記事に返信する


naya

リンク

2026/3/10(Tue) 20:47:40|NO.104810

すみません。
説明不足かもしれませんので、補足情報を。

本モジュールはhsp3dish.js製のブラウザゲーム等で文字列データの保存、読み出しを可能にするモジュールとなります。
一度保存した文字列データはブラウザを閉じた後も維持されます。



zakki

リンク

2026/3/11(Wed) 11:00:17|NO.104812

自分専用なら大丈夫ですが、ライブラリ的にはexec前にエスケープかけたり16進数とかbase64とかに変換するほうがよさそうです。
ユーザーの自由入力欄無ければ実害は無いとは思いますが。

set_item iname, "test'); console.log('TEST";" ;



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.104809への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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