プチコン3号 SmileBASIC コミュニティ投稿けい kei0baisoku2015/01/07 03:28:33質問HELPです!(><) 自動バージョン保存ツールを作ろうとしていたのですが、どうにも行き詰まっています。どなたか、何かご存知のことや気が付いた事がありましたら、助言を頂けると助かりますm(__)m ソースは写真の通りです。状況の詳細はコメントに書き込みます。3そうだね 37返信プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿けい kei0baisoku2015/1/7 3:40作ろうとしているのは以下の機能です。 「ファンクションキーの3番を押したら、スロット0のプログラムを上書きセーブした上で、過去のものとファイル名が被らないようにちょっと名前変えた上でBACKUPというフォルダにもコピーする」 バックアップフォルダ以下には、BASE64的なノリでHOGE_00、HOGE_01……HOGE_ZZ、と末尾に3文字だけ追加して毎回新規ファイルにするつもりです。 で、単独で手軽に使いたいのと、別フォルダに保存するにはPROJECT命令を使う必要があり、PROJECT命令はDIRECTモードでないと使えないので、写真のプログラムをKEYに登録しようとしています。0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿けい kei0baisoku2015/1/7 3:48登録しようとして、KEYは128文字までしか登録できないと分かり、まず壁にぶち当たりました。写真のプログラムを128文字以下に収められれば解決するのですが、少し試して私には到底無理そうだったのでそれは断念しました。 次に「PROJECT命令だけ直接呼んで、ほかはファイルにしておきPRG3あたりにロード&RUN 3 するプログラム」をKEYに登録して試しました。 これはRUN 3の時点で行数不明のシンタックスエラーが出て、進捗はそこでストップ中です。0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿けい kei0baisoku2015/1/7 3:54スマイルボタンかそこから呼び出されるランチャに登録したら解決するんだろうなとは気付いているのですが、極力単独でも使えるようにしておきたいので試行錯誤してます。 この方向で続けるなら多分シンタックスエラーを詳しくしらべることになると思いますが、やりたい事は気軽なバージョン管理ですので、それが実現できるなら方法はおよそ何でも良いです。 そもそもこれでいんじゃね、とか何か気付いたことなどありましたらお教えいただけると助かります。お願いいたしますm(__)m0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿ねこはち neko800012015/1/7 4:08短縮するとなると、通し番号の処理が問題になりそうですね~ 0~9を切り捨ててCHR$使ってみるとちっとは短くなるけれども、それでも128文字は遠いかあ…0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿けい kei0baisoku2015/1/7 4:18>ねこはちさん ありがとうございます。 そうなんですよね。あと一歩なら有効そうなのですが一歩どころかまだ百歩くらいあって……… 一応ダメもとで、名前をアルファベットに限定して式を変えて変数名も全部一文字にして、とできることを詰め込んでみたのですが、それでもまだ128文字の倍以上はありました………0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿けい kei0baisoku2015/1/7 4:22あ、すみません。試したけど書いてなかった事があったので追記します。 プログラム終了後も関数や変数が生きているのを利用して、バックアップの関数のDEFだけ先に通しておいて、KEYではそれを呼び出すだけ、というのも試したのですが、ほかのプログラムを実行したら定義が消えました……… ほかのプログラムを実行するまではうまくいきました。0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿ねこはち neko800012015/1/7 4:24今、自分もそれを試していましたが、やはり届きませんか… ファイル名取得も捨ててみてはどうでしょうか? プロジェクト内のたとえば、”EXE”がメインの実行ファイルだという統一ルールがないのが痛いところですが って、仕様がどんどん変わっちゃいますね…0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿ヒロブミ hirobumi-mmo2015/1/7 6:28DIRECTモードでの関数呼び出しは現在のバージョンではバグが多く怖いので、自分は管理プログラムをSLOT3に押し込んでます。 さらにSLOT3のプログラムではボタン入力で処理を分岐させる事により ファイル管理に掛かる手間を減らしつつ機能も削らないようにしました。 そしてLOADというファイル名に LOAD "PRG0:作成中のプログラム LOAD "PRG1: LOAD "PRG2: LOAD "PRG3:管理プログラム としておく事により LOAD"を2度押してENTER,すぐにRUNですぐに管理プログラムを利用出来るようにしています。1そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿ish owlis12015/1/7 8:28ご無沙汰しております。 DIRECTモードでは再現できない、スマイルボタン使用を回避すると、あとはソース自体の扱いに細工が妥当では、と。 単体駆動はヒロブミさんが提案されているので、別のアプローチを考えました。妥当性は、やや度外視です。 数週間前に「ソース先頭で自身ファイルsaveする」ことでsave漏れを防ごう という啓蒙がありました。 同様に「プログラムの先頭で、slot3に管理プログラムを読み込んで、バックアップを自動化する」というのは、どうでしょうか。 検証はしておらず申し訳ないのと、起動時、必ずダイアログが表示されるので、バックアップファイル名に日時等を振ってローテートとsave制御タイミングを考える必要が有る、かも。 ついでに、その他の画像等リソースはどうするんだ、と。0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿otta777 otta777a2015/1/7 9:012行目と23行目でプログラム実行中にカレントプロジェクトを 変更する部分を KEY 1,"PROJECT "+CHR$34)+"BACKUP"+CHR$(13) KEY 2,"CONT"+CHR$(13) ? "ファンクションキー1のつぎにファンクションキー2をおしてください” STOP としてDIRECTモードでプロジェクトを切り替えた後にCONTで再開して 貰う仕様にするのは問題ありますか?0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿けい kei0baisoku2015/1/7 10:02>ねこはちさん ありがとうございます。ファイル名取得というのは、PRGNAME$(0)の事でしょうか? うーん、確かにそれだと保存対象は決めうちになっちゃいますね………。 使えるようになったら配布するのと、自分でも汎用的に使いたいので自動取得はちょっと捨てられそうにないです………0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[12]親投稿けい kei0baisoku2015/1/7 10:10>ヒロブミさん ありがとうございます。LOAD"LOAD"は面白いですね!(^O^) ワンタッチに近いし使いやすそうです。本件とは別ですが、そのうち私も活用させていただくかも。 コメント拝見して、私はスロット3にロードしてからRUNしようとしていましたが、よく考えたらどうせスロットを一つ潰すなら、毎回上書きしようとするより最初だけロードして、あとはスロットに生きてること前提でKEYからRUNさせた方が安全ですね。 シンタックスエラーの件もありますが、これで行けそうならいくかも………(・ω・)0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[13]親投稿でんぺん DENPEN2015/1/7 10:27けいさんのプログラムを参考に僕なりに考えてみましたがこれが限界でした。 始めに別スロットに読み込んで、セーブ時にRUNしてKEYを書き換えて、そのKEYでセーブする2ステップ方式です。0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[14]親投稿けい kei0baisoku2015/1/7 12:32>ishさん ご無沙汰してます。提案ありがとうございます! 開発中のソースにセーブ命令も組み込む方法の応用ですね(^O^) セーブ時にダイアログが出るのはもうやむを得ないので、十分良さそうです。 ただ、すみません。ちゃんと書くのを忘れていたのですが、完成したら配布もしようと思っていたのです………(><) 自分だけで使うならその方法を使わせて頂くと思います。 あと、画像とかは………諦めてます(^q^) 私自身作ってないのと、まあまずは需要ありそうなプログラムからかなと。0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[15]親投稿けい kei0baisoku2015/1/7 14:36>otta777さん ありがとうございます。PROJECT命令だけ分離する方法ですね。なるほど。 行けそうな感じですが、すみません、ちゃんと書いてなかったのですが完成したら配布したいこともあり、SAVE以外のKEYをいじるのはなるべく避けたいところです。あとこれは個人的なこだわりにも近いのですが、操作UIは1ステップと2ステップとでは雲泥の差があると考えているので、少々プログラムの中で無茶をしてでも、ユーザがやる事は極力1つに抑えたいと考えています。2ステップ以上あると心理的な大変さ、面倒さが出てきて、使うのを敬遠し始める恐れがあるから、といった理由です。 とは言えご提案下さった方法なら案内も出て少なくとも戸惑う事はないので、どうしても1つにまとめられなかったら是非参考にさせて頂こうと思います。0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[16]親投稿けい kei0baisoku2015/1/7 14:43あとすみません、もしかしたら私ちゃんと理解してないかもと思ったので念のため確認を。 KEY1とKEY2でやってることは、まとめようと思ったらKEY1の中で両方済ませられると思ったのですが、その理解であってますでしょうか? また、もとのプログラム自体KEY3とかに登録して呼び出す想定だと思いますが、そうするとKEY1の内容自体も、KEY3の中で一緒に済ませられそうという理解です。 ………ただ、私が最後にそれやろうとして原因不明のシンタックスエラーが出て止まっている訳ですけども………(-ω-)0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[17]親投稿コータ[quota] W.D.WE2015/1/7 14:55命名規則を変えたのですが、2つのキーに収まりませんでした。 文字列変数が文字配列変数のように振る舞う機能(不具合?)を使うのは、少し、気になります。0そうだね プレイ済み2017/11/04 00:28:18に取得
プチコン3号 SmileBASIC コミュニティ返信[18]親投稿けい kei0baisoku2015/1/7 14:58>でんぺんさん ありがとうございます! おお!KEYの中で自分自身を二回書き換えてる感じでしょうか(°Д°) 面白いです!そして、見ただけだと挙動がイメージできない/(^O^)\ 今日、実際にやってみます。ユーザの手順は極力1つにしたいのですが、ダメでもここからなんとか頑張れるかも……… あと、知らない使い方もあって参考になりました。ありがとうございます。0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[19]親投稿でんぺん DENPEN2015/1/7 15:19僕のやり方も色々考えたんですが結局 1 他のスロットを使わない 2 ユーザーの操作を1回にする を達成することは出来なかったんですよねー…。 知らない使い方は僕もけいさんの文字列変数を配列のように使うやりかたやMID$で長さを無視(適当に長く入れる)などをしてなかったんで、なるほどと思いました。 コータさんの言うようにちょっと気にならなくもないですが(C言語的なので)、公式にOKならいいんですけどね。どうなのかなー。 ちなみにSHIFTは文字変数が文字配列として扱えるならSHIFT出来るんじゃないかなと思って試してみたら出来たって感じでした。0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[20]親投稿otta777 otta777a2015/1/7 16:02>けいさん CONTはマルチステートメントを使うとエラーになってしまうため 単独でファンクションキー2に定義する必要がありますので あのような提案になりました。 往年のMicrosoft BASICならこの記述でも問題なんですが プチコンでは出来ない仕様のようです。0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[21]親投稿けい kei0baisoku2015/1/7 16:36>コータさん ありがとうございます。 おおっ、すごい、大分短くなってる(°ω°) それでもまだこれだけあるので、やはり128文字は非現実的そうですね……… Base64的な命名は、ファイル名のサフィックス文字数を極力減らしたかったので最初に考えたのですが、冷静に考えたらそもそも実現が怪しくなった今だとそこまで優先度は高くなかったです。 文字列に対する[]もまずいですかねー(^^; 比較的一般的な文法なので、マニュアルにわざわざ書いてないだけかなと思ったのですが……… でも128文字に納めないなら少々長くなっても困らないので、わざわざ不安な書き方はしない方がいいですね。 ソートのやり方は思い付きませんでした。ありがとうございます。私のやり方だと二重ループなので、ファイル数が増えて負荷が爆発的に重くなるようなら必須な気がしました。0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[22]親投稿もやしもどき Pseudomoyashi2015/1/7 17:41ギリギリ128文字に入りましたが、こんなのどうでしょうか? - バージョン番号を16進法2桁で、FFまで達するとそれ以降はFFを上書き - ファイル名の文字数なんかはチェックしていない - 手動でバックアップを削除して連番に空きができると、次の保存時にそこを埋める形になってしまう みたいな仕様になってしまいましたが、一応KEYに入れて動作はするようです。1そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[23]親投稿けい kei0baisoku2015/1/7 17:53>でんぺんさん むぅ、でんぺんさんでも操作一回に出来なかったのですか………頑張ろう(-ω-) 文字列の[]は割と早い時期に試して使えたので活用してました。私が特に気が付かなかったのは、別フォルダに対するFILES命令です。てっきり無理だと思ってましたので、活用したらもう少し工夫できそう………0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[24]親投稿もやしもどき Pseudomoyashi2015/1/7 17:55すみません、画像の3行目のV=0は N=0のミスです。0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[25]親投稿けい kei0baisoku2015/1/7 17:56>otta777さん なるほど。了解しました。自分で試していたらハマっていたかも。ありがとうございます。0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[26]親投稿でんぺん DENPEN2015/1/7 18:041回に出来ないのは動作をまたぐと終了する命令が意外と多い?みたいなところですかねー。でもプロジェクト絡みだと使わざるを得ないみたいな…。 まあでも僕もこの辺のことはそんなに詳しくないので…。自分で使うことがあればさらに詳しく調べるところですが、現時点では今回のやり方を利用する予定はないですー。ただ色んな人のやり方で裏技というか正規の使い方じゃない(?)っぽいやり方を覚えられたので良かったです。0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[27]親投稿けい kei0baisoku2015/1/7 18:08>もやしもどきさん すごい!!(°Д°) 機能もだいたい変えずに収まってる! 16進2桁は候補として考えてましたし削除したらそこから埋めるのはむしろ理想です。 文字数ノーチェックと、ファイル数が増えるとCHKFILEが重いことが分かっているので、そこだけ課題ですね……… すみません、これ、完成したら公開もしようと思っていたのですが、問題ないでしょうか? RUN併用方式なら皆さんの提案をいろいろ活用させて頂いてになると思うのですが、KEY完結方式でいくならもやしもどきさんの提案のソースとほぼイコールになる可能性が高そうです。0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[28]親投稿でんぺん DENPEN2015/1/7 18:38おお〜。短いのが来ましたね〜。 KEYに登録できればそれに越したことがない感じですしね。 今までの話とかで色々と方向性は見えてるような気もするし、あとはどうまとめていくかみたいな感じになりそうですね。 がんばってください〜。0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[29]親投稿もやしもどき Pseudomoyashi2015/1/7 18:40構わないですよ。どうぞ使ってやって下さい。0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[30]親投稿けい kei0baisoku2015/1/7 19:13>もやしもどきさん ありがとうございます!最終的にどうするかはいろいろ試した結果で決めるつもりですが、課題が解決できたら(もしくはまぁいいかと判断したら)使わせて頂くかもしれません。 頑張ります(`・ω・´) 今日中には終わりそうにないな………(´Д`)0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[31]親投稿ish owlis12015/1/7 20:50次は誰かがDIFFを作ってくれると....1そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[32]親投稿けい kei0baisoku2015/1/7 21:14>ishさん ですね!(^O^) ちなみに私は目下ゲーム制作中のため、思い付いて0.3秒で断念しました(`・ω・´)\0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[33]親投稿けい kei0baisoku2015/1/9 2:54報告とお礼です。 もやしもどきさんの上げてくださったコードを元に、さらに縮めてファイル名チェックを入れるのも出来ましたので、これでアップしようと思います(^O^) CHKFILEの重さは、試しに100ファイル作ってみましたが旧DSでも2、3秒でしたので、実用に耐えうると判断しました。 アドバイスやご意見を下さった皆さん、本当にありがとうございました。 一応今は128文字以下に納めてのキー方式ですが、何かあったら修正・拡張出来ないので、別スロットに入れてrun方式もすぐやることになるかも………という気もしてます(´ω`) でもまずはゲーム完成させなきゃ………0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[34]親投稿もやしもどき Pseudomoyashi2015/1/9 17:00もう数文字は縮められる余地があるとは思っていましたが、ファイル名チェックが入りましたか…脱帽です。 あと、最終的なコードと自分のコードを見比べて気付きましたが、私のはループの継続条件を間違ってましたね。お恥ずかしい。0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[35]親投稿けい kei0baisoku2015/1/9 19:05>もやしもどきさん とんでもないです(^O^) 伝わりやすいかと思って一応、元々はKEYに入れようとしていた事も書きましたが、まさか機能をほとんど変えずに実現出来るとは思っていなかったので驚嘆いたしました。ありがとうございます。 文字数短縮は、本当に手段を選ばず実現したので見る人が見たら怒られそうな気もしています………(´з`)0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[36]親投稿ish owlis12015/1/9 20:09キー方式で問題解決したようで何よりです。 別スロット方式の採用も視野に入れますか。 ふと、別スロット方式であれば、 「コメントにバージョン管理情報を埋め込めば、開発プログラムとバージョン管理情報が分離できて嬉しいかも」と思いついてしまった。 ‘バックアップ設定はソースの先頭コメントとかルール決める ‘@text:test.prg ‘@grp:test.grp EXEC “PRG3:BK" 'ここから開発プログラム ACLS:… 決め事が多いと窮屈で、プチコンのカラーではないですね。0そうだね プレイ済み2017/11/04 00:28:17に取得
プチコン3号 SmileBASIC コミュニティ返信[37]親投稿けい kei0baisoku2015/1/9 21:26>ishさん プログラム内に管理情報埋め込みですか。なかなか面白そうですね。 個人個人やりたい事が全然違いそうなので汎用的に使えるものにしようと思うとハードルが高そうですが………0そうだね プレイ済み2017/11/04 00:28:17に取得