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


HSPTV!掲示板


未解決 解決 停止 削除要請

2025
0301
ぽてちsdimの内容がbsaveでうまく保存できません5解決


ぽてち

リンク

2025/3/1(Sat) 17:21:24|NO.103170

sdim deta

deta(0)="1"
deta(1)="2"
deta(2)="3"

bsave "save.dat",deta

と順次データを入れていき保存すると
1しか保存されません、1〜3全て保存するにはどう書いたら良いのですか?



この記事に返信する


名無し

リンク

2025/3/1(Sat) 18:10:18|NO.103173

sdim deta
deta(0)="1" deta(1)="2" deta(2)="3" mes data
上記実行すればわかると思いますが、
配列変数の変数名のみ指定した場合、自動的に0番目の内容を取得されます。
上記の場合、dataをmesで表示していますが、それはdata(0)をmesしているのと同じです。
bsaveについても同じかと。

1〜3全て保存するのであれば、配列ではなく通常の変数にまとめてから保存する必要がありそうです。



正蔵

リンク

2025/3/1(Sat) 18:58:10|NO.103174

配列を使うよりnote系命令のほうが用途にはあっていそうな気がします


notesel deta noteadd "1" noteadd "2" noteadd "3" notesave "save.dat" //読み出しはnotegetを使う repeat noteinfo(0) noteget tmp, cnt mes "" + cnt + "行目 :" + tmp loop



ぽてち

リンク

2025/3/1(Sat) 19:55:21|NO.103175

皆様、回答ありがとうございました

noteを使ってみたのですが加える度にデータに改行が入ってしまいます
noteは改行無しに追加することはできないのでしょうか?





縦にではなく

123

横に並んでほしいのですが



GENKI

リンク

2025/3/1(Sat) 20:31:44|NO.103176

bsaveは変数内のバイナリデータをそのままファイルに出力する命令です。実行結果はdeta(0)のバイナリデータのみがファイルに保存されます。

配列変数の内容を保存したいのであれば方法はいくつかありますが、vsave命令を使ってみてはどうでしょうか。

#include "hspda.as" sdim deta deta(0)="1" deta(1)="2" deta(2)="3" gosub *output ;保存 vsave_start vsave_put deta vsave_end "save.dat" ;データをクリア deta = "", "", "" gosub *output ;読み込み vload_start "save.dat" vload_get deta vload_end gosub *output stop ;確認のために表示 *output repeat 3 mes deta(cnt) loop return



ぽてち

リンク

2025/3/1(Sat) 21:27:13|NO.103178

教えて頂いたことを勉強してプログラムを進めていきたいと思います
皆様、教えていただきありがとうございました



記事削除

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

NO.103170への返信

マスコット

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

名前

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

削除用パスワード

解決したら質問者本人がここをチェックしてください。

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

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