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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
1126
CHSPのセーブで質問です7解決


C

リンク

2016/11/26(Sat) 02:27:35|NO.77383

HSPでプログラムの初回起動時に
ファイルを自動生成して、次回起動時からは
そのファイルがある事を確認して特定のプログラムを実行する、
というプログラムを作るにはどうすれば良いのでしょうか。
色々調べたのですが全く分からず困っています…。



この記事に返信する


MillkeySoftware

リンク

2016/11/26(Sat) 12:55:22|NO.77386

初回起動時 = なにかのファイルの存在をチェックしなきゃならないので

特定ファイル名で、exist を行います。
この際の戻り値(strsize) が -1 の場合ファイルが存在しないので初回起動と判定する。
もし、strsize が -1 以外であれば、初回起動と判定しない。

exist "happy.ini" if strsize == -1 : mes "初回起動" : else : mes "通常起動"

また初回起動時の場合ファイルを作成するので、bsave または notesave などで新しいファイルを作成します。

a = "Happy_初回起動" bsave "Happy.ini",a
などの方法で作成します。これでテキストの書かれたファイルが生成されます。

次に通常起動時の動作ですが、これも大体同じで、bload または noteload などでファイルを読み込みます。

bload "Happy.ini",a
ファイルのデータを読み込みしたら必ず a のデータが正しいか調べてから各種処理にしましょう。

最後に、HSPはヘルプに書かれている命令を実行できます。
スクリプトエディタ上で F1 を押すとヘルプが表示されます。
利用したい命令とそのヘルプが表示されるので自分で調べてがんばりましょう。



雪月夜

リンク

2016/11/26(Sat) 13:13:24|NO.77387

ファイルがあるかどうか調べるはexistを使えば分かります
ファイルの保存(参照)先を変更する場合はchdirを使います

;chdir dirinfo(0x10000) ;デスクトップに移動 sdim filedt ;セーブデータ filename="save" ;調べるファイル名 exist filename ;ファイルがあるかチェック if strsize>=0{ ;ファイルがない場合 bload filename,filedt gosub *load } /* メイン処理 */ bsave filename,filedt ;ファイル生成 stop *load dialog"プログラム実行" return



窓月らら

リンク

2016/11/26(Sat) 21:38:32|NO.77388


#define SAV_FILE "data.sav" // データファイル名 exist SAV_FILE // データファイルがあるか if strsize=-1 { // ファイルが無かった data=100 // ファイルに保存する内容、この場合は4bytes bsave SAV_FILE,data // ファイルを作成 mes "ファイルが無かったので作成しました。内容は "+data+" です。" } else { // ファイルがあった bload SAV_FILE,data // ファイルから読み込み mes "ファイルがあったので読み込みました。内容は "+data+" です。" }



C

リンク

2016/11/28(Mon) 21:12:40|NO.77400

沢山の回答有難うございます。
無事セーブができたのですが、bsaveで作成した
ファイルはどこへ保存されたのでしょうか…。
またそのファイルを削除すればまた初回起動になりますか?



MillkeySoftware

リンク

2016/11/28(Mon) 23:45:56|NO.77402

bsave で保存されたファイルは、カレントディレクトリに存在します。
現在のカレントディレクトリは、dir_cur で調べることができます。
(相対パスで bsave を指定した場合 : ドライブ文字を指定しない "happy.ini" など)

絶対パスで bsave を指定しない場合は、基本的にカレントディレクトリです。
(絶対パスとは、bsave でドライブ文字を含めた絶対的なパスです。"c:\Windows\System32\happy.ini" など)



C

リンク

2016/11/29(Tue) 15:11:28|NO.77407

有難うございます、プログラム完成しました!



C

リンク

2016/11/29(Tue) 15:33:31|NO.77408

解決しました、沢山の回答有難うございました!



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