投稿
セーブ&ロード機能を作ろうとしているんですが HP=100 SAVE”DAT:SDATE”,HP,NN$ このように打ち込んでエラーがでます 変数を別のファイルに保存して読み込むにはどうすればいいでしょうか?
1そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
変数の内容をファイルに保存するには方法が2つ有り それぞれファイル種別が異なります。 1)数値配列を保存 "DAT:" 今回はこちらで保存します。 2)文字列変数を保存 "TXT:" 数値の場合は数値配列変数に代入すればいいのですが 文字列の場合はそのまま数値配列変数には代入できないので 文字列変数の内容をASC関数でキャラクターコードにしてから数値配列変数に代入します。 SAVE "DAT:ファイル名",数値配列変数 【続く】
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
【続き】 DIM BUF[16] HP=100:MP=50:GLD=100:NM$="OTTA" BUF[0]=HP:BUF[1]=MP:BUF[2]=GD FOR I=0 TO LEN(NM$)-1 BUF[8+I]=ASC(MID$(NM$,I,1)) NEXT SAVE "DAT:SAVEDATA",BUF 数値配列変数BUFに保存したい数値変数を代入し、 文字列変数のNM$はASC関数でキャラクターコードに 変換して数値配列変数に代入します。 保存したい情報が入った数値配列変数BUFをSAVE命令で 保存します。
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
読み込むときはLOADした数値配列変数の内容を 目的の変数に代入します。 文字列変数の内容はCHR$関数で文字に変換して 文字列に復元します。 DIM BUF[16] LOAD "DAT:SAVEDATA",BUF HP=BUF[0]:MP=BUF[1]:GD=BUF[2] FOR I=0 TO 7 IF BUF[8+I]!=0 THEN NM$=NM$+CHR$(BUF(8+I)) NEXT
0そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
配列変数の表記を間違えていました。 5行目は IF BUF[8+I]!=0 THEN NM$=NM$+CHR$(BUF[8+I]) にして下さい。
0そうだね
プレイ済み
返信[5]
親投稿
やってみたんですがセーブはできたんですがロードがエラーがでてできません エラー-Duplicate Variable
0そうだね
プレイ済み
返信[6]
親投稿
otta777 otta777a
DIM BUF[16]はプログラム中1回宣言すれば良いので サブルーチンの中では無くプログラムの頭の方で 宣言して下さい。 エラーの内容は変数や配列変数を重複宣言してしまった 事が原因です。 別々のプログラムで実行してもエラーにならない様に それぞれのプログラムにDIM命令を書いていました。 説明が足りませんでしたね。
0そうだね
プレイ済み
返信[7]
親投稿
Skull mmmmm87
しょうくんって変態だよねーーーwww
0そうだね
未プレイ