LoginSignup
2
2

More than 5 years have passed since last update.

ゲームのセーブデータをプロデルでバックアップできるようにしてみた

Last updated at Posted at 2018-06-12

追記

続きをhttps://qiita.com/MORAsan/items/ba9e50f71afa3b5b7e62に投稿しました。

このプログラムはバグがある可能性があります

現在確認済みのバグ

  • バックアップからデータを復元しようとした際、復元先のフォルダが消されるだけの状態になる
  • データを復元する機能(zipを解凍する)が全く動いていない
    • この2点は原因を探しています ver2.1として修正したものを本ページ下に記載しています

はじめに

普段、ADV(アドベンチャーゲーム)していると
セーブデータをバックアップしたい
と思って作りました。
私、PC複数台持っているためすべてのPCでセーブデータを同じにしたかったんです。
ネットで調べてみたのですが、すでに開発中止などが多く無かった(見つけられなかった)ため自分で作ってみることに
しかし、プログラミングはマークアップ言語で慣れているためCなどはわからない...
とういわけで、愛用のプロデルで作ってみました。
[プロデル公式]https://rdr.utopiat.net

できること

  1. セーブデータを.zipに圧縮し指定した場所へコピーする
  2. 指定した場所の圧縮されたセーブデータを元の場所へ展開し、戻す

こんなかんじの簡単な仕様です。
後からパスを追加できるように、ファイルで管理しています。
また、変更等も簡単にできるようにしています。

プログラム

注意点

本プログラムは、プロデルデザイナWindows版 Ver 1.5.911で作っています。
コメントはあまり書いていませんがご了承ください。
また、ボタンの名前等も一部そのままでわかりにくいかもしれませんがご了承ください。

ADVsaver.rdr
ADVsaver:定義
ADVsaverを表示する
ADVsaver:追加
待機する


ADVsaver新規追加とは
    ウィンドウを継承する
    はじめの手順
        初期化する
        ーー貼り付けた部品に対する操作をここに書きます
    終わり
    初期化する手順
    ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
    この内部領域大きさを{924,295}に変える
    この内容を「ADVsaver新規追加」に変える
    ボタン8というボタンを作る
        その位置と大きさを{109,264,75,23}に変える
        その内容を「新規追加」に変える
        その移動順を19に変える
    ボタン7というボタンを作る
        その位置と大きさを{311,213,153,23}に変える
        その内容を「セーブデータと同じパスに変更」に変える
        その移動順を16に変える
    ボタン6というボタンを作る
        その位置と大きさを{219,213,85,23}に変える
        その内容を「パスを変更する」に変える
        その移動順を15に変える
    ボタン5というボタンを作る
        その位置と大きさを{109,213,104,23}に変える
        その内容を「フォルダの場所を開く」に変える
        その移動順を14に変える
    ボタン4というボタンを作る
        その位置と大きさを{219,159,85,23}に変える
        その内容を「パスを変更する」に変える
        その移動順を13に変える
    ボタン3というボタンを作る
        その位置と大きさを{109,159,104,23}に変える
        その内容を「フォルダの場所を開く」に変える
        その移動順を12に変える
    ボタン2というボタンを作る
        その位置と大きさを{219,105,85,23}に変える
        その内容を「パスを変更する」に変える
        その移動順を11に変える
    ボタン1というボタンを作る
        その位置と大きさを{109,105,104,23}に変える
        その内容を「フォルダの場所を開く」に変える
        その移動順を10に変える
    ラベル5というラベルを作る
        その位置と大きさを{12,195,91,12}に変える
        その内容を「バックアップ展開先」に変える
        その移動順を9に変える
    ラベル4というラベルを作る
        その位置と大きさを{12,141,84,12}に変える
        その内容を「バックアップのパス」に変える
        その移動順を8に変える
    ラベル3というラベルを作る
        その位置と大きさを{12,83,91,12}に変える
        その内容を「セーブデータのパス」に変える
        その移動順を7に変える
    ラベル2というラベルを作る
        その位置と大きさを{12,58,41,12}に変える
        その内容を「製品名」に変える
        その移動順を6に変える
    ラベル1というラベルを作る
        その位置と大きさを{12,33,54,12}に変える
        その内容を「メーカー名」に変える
        その移動順を5に変える
    バックアップ展開先2というテキストを作る
        その位置と大きさを{109,188,803,19}に変える
        その移動順を4に変える
    バックアップパス2というテキストを作る
        その位置と大きさを{109,134,803,19}に変える
        その移動順を3に変える
    セーブデータパス2というテキストを作る
        その位置と大きさを{109,80,803,19}に変える
        その移動順を2に変える
    製品名2というテキストを作る
        その位置と大きさを{109,51,376,19}に変える
        その移動順を1に変える
    メーカー名2というテキストを作る
        その位置と大きさを{109,26,376,19}に変える
        その移動順を1に変える
終わり
ーーパスの手動変更
    ボタン2がクリックされた時の手順
    フォルダ選択画面を表示する
    もしフォルダ選択画面のキャンセルなら
    「キャンセルされました」を表示
    そうでないなら
    選択フォルダ名は、フォルダ選択画面のフォルダ名
    選択フォルダ改に選択フォルダ名の末尾から1文字消したものを代入する
    セーブデータパス2の内容を選択フォルダ改に変える  
    選択フォルダ名に「」を代入する
    もし終わり
    終わり

    閉じた時の手順
    ADVsaver:追加
    終わり

ボタン4がクリックされた時の手順
    フォルダ選択画面を表示する
    もしフォルダ選択画面のキャンセルなら
    「キャンセルされました」を表示
    そうでないなら
    選択フォルダ名は、フォルダ選択画面のフォルダ名
    選択フォルダ改に選択フォルダ名の末尾から1文字消したものを代入する
    バックアップパス2の内容を選択フォルダ改に変える  
    選択フォルダ名に「」を代入する
    もし終わり

    終わり

ボタン6がクリックされた時の手順
    フォルダ選択画面を表示する
    もしフォルダ選択画面のキャンセルなら
    「キャンセルされました」を表示
    そうでないなら
    選択フォルダ名は、フォルダ選択画面のフォルダ名
    選択フォルダ改に選択フォルダ名の末尾から1文字消したものを代入する
    バックアップ展開先2の内容を選択フォルダ改に変える   
    選択フォルダ名に「」を代入する
    もし終わり

    終わり

ボタン1がクリックされた時の手順
    フォルダpというフォルダ情報(セーブデータパス2の内容)を作る
    もしフォルダが存在するなら
    フォルダpを開く
    でなければ
    「フォルダがありません」を警告アイコンで表示
    もし終わり
    終わり

    ボタン3がクリックされた時の手順
    フォルダpというフォルダ情報(バックアップパス2の内容)を作る
    もしフォルダが存在するなら
    フォルダpを開く
    でなければ
    「フォルダがありません」を警告アイコンで表示
    もし終わり
    終わり

ボタン5がクリックされた時の手順
    フォルダpというフォルダ情報(バックアップ展開先2の内容)を作る
    もしフォルダが存在するなら
    フォルダpを開く
    でなければ
    「フォルダがありません」を警告アイコンで表示
    もし終わり
    終わり

ボタン7がクリックされた時の手順
    バックアップ展開先2の内容をセーブデータパス2の内容に変える
    終わり

ボタン8がクリックされた時の手順
    フォルダpというフォルダ情報(「[今の位置]d\[メーカー名2の内容]」)を作る
    もしフォルダpが存在するなら
        ADVsaver新規追加:ファイル作成
    でなければ
        [メーカー名2の内容]というフォルダを「[今の位置]d\」に作成する
        ADVsaver新規追加:ファイル作成
    もし終わり
終わり

ファイル作成の手順
    fl=「」
        もし「[今の位置]d\[メーカー名2の内容]\[製品名2].d」というファイルが存在するなら
              結果は、「すでにファイルがあります。上書きしてもよろしいですか?」をはいといいえで警告アイコンにして質問したもの
            もし結果が「はい」なら
                fl=true
                ADVsaver新規追加:値書き換え
            もし終わり
        でなければ
            ADVsaver新規追加:値書き換え
        もし終わり
終わり

値書き換えの手順
更新=「」
更新は、{メーカー名=「[メーカー名2の内容]」,製品名=「[製品名2の内容]」,セーブデータのパス=「[セーブデータパス2の内容]」,バックアップのパス=「[バックアップパス2の内容]」,バックアップ展開先=「[バックアップ展開先2の内容]」}
もし、fl=trueなら
         「[今の位置]d\[メーカー名2の内容]\[製品名2の内容].d」を削除する
    更新を「[今の位置]d\[メーカー名2の内容]\[製品名2の内容].d」へ保存する
でなければ
    更新を「[今の位置]d\[メーカー名2の内容]\[製品名2の内容].d」へ保存する
もし終わり
「更新しました」を情報アイコンで表示
終わり
終わり

ADVsaverデータ変更とは
    ウィンドウを継承する
    はじめの手順
        初期化する
        ーー貼り付けた部品に対する操作をここに書きます
    終わり
    初期化する手順
    ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
    この内部領域大きさを{924,295}に変える
    この内容を「ADVsaverデータ変更」に変える
    ボタン8というボタンを作る
        その位置と大きさを{109,264,75,23}に変える
        その内容を「変更を保存」に変える
        その移動順を19に変える
    ラベル7というラベルを作る
        その位置と大きさを{491,54,234,12}に変える
        その内容を「変更する場合、テキストボックス内を変えてください」に変える
        その移動順を18に変える
    ラベル6というラベルを作る
        その位置と大きさを{491,29,234,12}に変える
        その内容を「変更する場合、テキストボックス内を変えてください」に変える
        その移動順を17に変える
    ボタン7というボタンを作る
        その位置と大きさを{311,213,153,23}に変える
        その内容を「セーブデータと同じパスに変更」に変える
        その移動順を16に変える
    ボタン6というボタンを作る
        その位置と大きさを{219,213,85,23}に変える
        その内容を「パスを変更する」に変える
        その移動順を15に変える
    ボタン5というボタンを作る
        その位置と大きさを{109,213,104,23}に変える
        その内容を「フォルダの場所を開く」に変える
        その移動順を14に変える
    ボタン4というボタンを作る
        その位置と大きさを{219,159,85,23}に変える
        その内容を「パスを変更する」に変える
        その移動順を13に変える
    ボタン3というボタンを作る
        その位置と大きさを{109,159,104,23}に変える
        その内容を「フォルダの場所を開く」に変える
        その移動順を12に変える
    ボタン2というボタンを作る
        その位置と大きさを{219,105,85,23}に変える
        その内容を「パスを変更する」に変える
        その移動順を11に変える
    ボタン1というボタンを作る
        その位置と大きさを{109,105,104,23}に変える
        その内容を「フォルダの場所を開く」に変える
        その移動順を10に変える
    ラベル5というラベルを作る
        その位置と大きさを{12,195,91,12}に変える
        その内容を「バックアップ展開先」に変える
        その移動順を9に変える
    ラベル4というラベルを作る
        その位置と大きさを{12,141,84,12}に変える
        その内容を「バックアップのパス」に変える
        その移動順を8に変える
    ラベル3というラベルを作る
        その位置と大きさを{12,83,91,12}に変える
        その内容を「セーブデータのパス」に変える
        その移動順を7に変える
    ラベル2というラベルを作る
        その位置と大きさを{12,58,41,12}に変える
        その内容を「製品名」に変える
        その移動順を6に変える
    ラベル1というラベルを作る
        その位置と大きさを{12,33,54,12}に変える
        その内容を「メーカー名」に変える
        その移動順を5に変える
    バックアップ展開先2というテキストを作る
        その位置と大きさを{109,188,803,19}に変える
        その移動順を4に変える
    バックアップパス2というテキストを作る
        その位置と大きさを{109,134,803,19}に変える
        その移動順を3に変える
    セーブデータパス2というテキストを作る
        その位置と大きさを{109,80,803,19}に変える
        その移動順を2に変える
    製品名2というテキストを作る
        その位置と大きさを{109,51,376,19}に変える
        その移動順を1に変える
    メーカー名2というテキストを作る
        その位置と大きさを{109,26,376,19}に変える
        その移動順を1に変える
終わり
初期手順
内容は、「[ADVsaverのfp]」から読み込んだもの
データは、内容を辞書化したもの
    メーカー名2の内容をデータ(「メーカー名」)に変える
    製品名2の内容をデータ(「製品名」)に変える
    セーブデータパス2の内容をデータ(「セーブデータのパス」)に変える
    バックアップパス2の内容をデータ(「バックアップのパス」)に変える
    バックアップ展開先2の内容をデータ(「バックアップ展開先」)に変える

終わり

ーーパスの手動変更
    ボタン2がクリックされた時の手順
    フォルダ選択画面を表示する
    もしフォルダ選択画面のキャンセルなら
    「キャンセルされました」を表示
    そうでないなら
    選択フォルダ名は、フォルダ選択画面のフォルダ名
    選択フォルダ改に選択フォルダ名の末尾から1文字消したものを代入する
    セーブデータパス2の内容を選択フォルダ改に変える  
    選択フォルダ名に「」を代入する
    もし終わり
    終わり

    閉じた時の手順
    ADVsaver:追加
    終わり

ボタン4がクリックされた時の手順
    フォルダ選択画面を表示する
    もしフォルダ選択画面のキャンセルなら
    「キャンセルされました」を表示
    そうでないなら
    選択フォルダ名は、フォルダ選択画面のフォルダ名
    選択フォルダ改に選択フォルダ名の末尾から1文字消したものを代入する
    バックアップパス2の内容を選択フォルダ改に変える  
    選択フォルダ名に「」を代入する
    もし終わり

    終わり

ボタン6がクリックされた時の手順
    フォルダ選択画面を表示する
    もしフォルダ選択画面のキャンセルなら
    「キャンセルされました」を表示
    そうでないなら
    選択フォルダ名は、フォルダ選択画面のフォルダ名
    選択フォルダ改に選択フォルダ名の末尾から1文字消したものを代入する
    バックアップ展開先2の内容を選択フォルダ改に変える   
    選択フォルダ名に「」を代入する
    もし終わり

    終わり

ボタン1がクリックされた時の手順
    フォルダpというフォルダ情報(セーブデータパス2の内容)を作る
    もしフォルダが存在するなら
    フォルダpを開く
    でなければ
    「フォルダがありません」を警告アイコンで表示
    もし終わり
    終わり

    ボタン3がクリックされた時の手順
    フォルダpというフォルダ情報(バックアップパス2の内容)を作る
    もしフォルダが存在するなら
    フォルダpを開く
    でなければ
    「フォルダがありません」を警告アイコンで表示
    もし終わり
    終わり

ボタン5がクリックされた時の手順
    フォルダpというフォルダ情報(バックアップ展開先2の内容)を作る
    もしフォルダが存在するなら
    フォルダpを開く
    でなければ
    「フォルダがありません」を警告アイコンで表示
    もし終わり
    終わり

ボタン7がクリックされた時の手順
    バックアップ展開先2の内容をセーブデータパス2の内容に変える
    終わり

ボタン8がクリックされた時の手順
    ーーメーカー名の変更を検出し分岐
    もし、[メーカー名2の内容=データ(「メーカー名」)]でないなら
        フォルダpというフォルダ情報(「[今の位置]d\[メーカー名2の内容]」)を作る
        もしフォルダpが存在するなら
            ADVsaverデータ変更:ファイル作成
        でなければ
            結果は、「変更したメーカー名を新規追加してもよろしいですか?」をはいといいえで警告アイコンにして質問したもの
            もし結果が「はい」なら
                [メーカー名2の内容]というフォルダを「[今の位置]d\」に作成する
                「メーカーを新規追加しました」を情報アイコンで表示
                ADVsaverデータ変更:ファイル作成
            もし終わり
        もし終わり
    でなければ
        ADVsaverデータ変更:ファイル作成
    もし終わり

終わり
ファイル作成の手順
    fl=「」
    もし、[製品名2の内容=データ(「製品名」)]でないなら
        もし「[今の位置]d\[メーカー名2の内容]\[製品名2].d」というファイルが存在するなら
              結果は、「すでにファイルがあります。上書きしてもよろしいですか?」をはいといいえで警告アイコンにして質問したもの
            もし結果が「はい」なら
                fl=true
                ADVsaverデータ変更:値書き換え
            もし終わり
        でなければ
            ADVsaverデータ変更:値書き換え
        もし終わり
    でなければ
        ADVsaverデータ変更:値書き換え
    もし終わり
終わり
値書き換えの手順
更新=「」
更新は、{メーカー名=「[メーカー名2の内容]」,製品名=「[製品名2の内容]」,セーブデータのパス=「[セーブデータパス2の内容]」,バックアップのパス=「[バックアップパス2の内容]」,バックアップ展開先=「[バックアップ展開先2の内容]」}
「[今の位置]d\[データ(「メーカー名」)]\[データ(「製品名」)].d」を削除する
もし、fl=trueなら
    「[今の位置]d\[メーカー名2の内容]\[製品名2の内容].d」を削除する
    更新を「[今の位置]d\[メーカー名2の内容]\[製品名2の内容].d」へ保存する
でなければ
    更新を「[今の位置]d\[メーカー名2の内容]\[製品名2の内容].d」へ保存する
もし終わり
「更新しました」を情報アイコンで表示
ADVsaverデータ変更を閉じる
終わり
終わり

ADVsaverとは
    ウィンドウを継承する
    はじめの手順
        初期化する
        ーー貼り付けた部品に対する操作をここに書きます
    終わり
    初期化する手順
    ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
    この内部領域大きさを{891,579}に変える
    この部品キーイベントを○に変える
    この内容を「ADVsaver」に変える
    データ変更というボタンを作る
        その位置と大きさを{693,32,183,48}に変える
        その内容を「データ変更」に変える
        その移動順を27に変える
    リストボックス2というリストボックスを作る
        その位置と大きさを{351,32,336,220}に変える
        その項目高さを12に変える
        その移動順を26に変える
    リストボックス1というリストボックスを作る
        その位置と大きさを{9,32,336,220}に変える
        その項目高さを12に変える
        その移動順を25に変える
    展開先というテキストを作る
        その位置と大きさを{144,535,738,19}に変える
        その読み取り専用を○に変える
        その移動順を23に変える
        その背景色を「オブジェクト」に変える
    バックアップするというボタンを作る
        その位置と大きさを{503,449,112,55}に変える
        その内容を「バックアップする」に変える
        その移動順を19に変える
    フォルダ内データ列挙というリストボックスを作る
        その位置と大きさを{12,356,367,148}に変える
        その項目高さを12に変える
        その選択方法を「なし」に変える
        その移動順を13に変える
    セーブフォルダ開くというボタンを作る
        その位置と大きさを{141,307,108,23}に変える
        その内容を「フォルダの場所を開く」に変える
        その移動順を9に変える
    メーカー名というテキストを作る
        その位置と大きさを{89,258,317,19}に変える
        その読み取り専用を○に変える
        その移動順を4に変える
        その背景色を「オブジェクト」に変える
    ラベル1というラベルを作る
        その位置と大きさを{9,258,74,20}に変える
        その内容を「メーカー名」に変える
        そのフォントを「メイリオ,9.75」に変える
        その移動順を2に変える
    ラベル2というラベルを作る
        その位置と大きさを{412,259,48,20}に変える
        その内容を「製品名」に変える
        そのフォントを「メイリオ,9.75」に変える
        その移動順を5に変える
    製品名というテキストを作る
        その位置と大きさを{466,259,317,19}に変える
        その読み取り専用を○に変える
        その移動順を6に変える
        その背景色を「オブジェクト」に変える
    ラベル3というラベルを作る
        その位置と大きさを{9,282,126,20}に変える
        その内容を「セーブデータのパス」に変える
        そのフォントを「メイリオ,9.75」に変える
        その移動順を7に変える
    場所というテキストを作る
        その位置と大きさを{141,282,738,19}に変える
        その読み取り専用を○に変える
        その移動順を8に変える
        その背景色を「オブジェクト」に変える
    ラベル4というラベルを作る
        その位置と大きさを{9,333,152,20}に変える
        その内容を「フォルダ内ファイル一覧」に変える
        そのフォントを「メイリオ,9.75」に変える
        その移動順を14に変える
    ラベル5というラベルを作る
        その位置と大きさを{12,510,126,20}に変える
        その内容を「バックアップのパス」に変える
        そのフォントを「メイリオ,9.75」に変える
        その移動順を15に変える
    バックアップ保存場所というテキストを作る
        その位置と大きさを{144,510,738,19}に変える
        その読み取り専用を○に変える
        その移動順を16に変える
        その背景色を「オブジェクト」に変える
    ラベル6というラベルを作る
        その位置と大きさを{385,356,139,20}に変える
        その内容を「バックアップファイル」に変える
        そのフォントを「メイリオ,9.75」に変える
        その移動順を17に変える
    バックアップ存在確認というテキストを作る
        その位置と大きさを{530,357,289,19}に変える
        その読み取り専用を○に変える
        その移動順を18に変える
        その背景色を「オブジェクト」に変える
    "バックアップから復元"というボタンを作る
        その位置と大きさを{621,449,112,55}に変える
        その内容を「バックアップから復元」に変える
        その移動順を20に変える
    ラベル7というラベルを作る
        その位置と大きさを{12,535,126,20}に変える
        その内容を「バックアップ展開先」に変える
        そのフォントを「メイリオ,9.75」に変える
        その移動順を22に変える
    手動更新というボタンを作る
        その位置と大きさを{385,449,112,55}に変える
        その内容を「最新の情報に更新」に変える
        その移動順を24に変える
    リスト更新というボタンを作る
        その位置と大きさを{693,204,183,48}に変える
        その内容を「リストを最新の情報に更新」に変える
        その移動順を28に変える
    新規追加というボタンを作る
        その位置と大きさを{693,86,183,48}に変える
        その内容を「データ新規追加」に変える
        その移動順を29に変える
終わり
    定義の手順
    USは、「[プロファイルフォルダ]」
    ユーザーファイルは、USの末尾から9文字消したもの
    セーブフォルダ開くの有効を×に変える
    バックアップするの有効を×に変える
    バックアップから復元の有効を×に変える
    データ変更の有効を×に変える
    手動更新の有効を×に変える
    終わり

    ーーフォルダを開く
    セーブフォルダ開くがクリックされた時の手順
    表示場所は、場所の内容
    表示場所を開く
    終わり

    更新するの手順
    手動更新の有効を○に変える
    データ変更の有効を○に変える
    フォルダ内データ列挙をクリアする
    フォルダ内データ列挙の色を黒に変える
    ーーセーブフォルダの存在確認
    元フォルダというフォルダ情報(場所の内容)を作る
    もし元フォルダが存在するなら
    場所の背景色を緑に変える
    場所の色を白に変える
    セーブフォルダ開くの有効を○に変える
    バックアップするの有効を○に変える
      ーーセーブフォルダ内列挙
    フォルダ一覧は、元フォルダから「*.*」を列挙する
    フォルダ一覧のすべての要素についてそれぞれ繰り返す
    フォルダ内データ列挙に要素の名前を加える
    繰り返し終わり

    元フォルダ2というフォルダ情報(展開先の内容)を作る
    ーー展開先フォルダの存在確認
    もし元フォルダ2が存在するなら
      展開先の背景色を緑に変える
    展開先の色を白に変える
    もし終わり
    
      ーーバックアップファイル存在確認
    もし「[バックアップ保存場所の内容]\[製品名の内容].zip」が存在するなら
    バックアップ存在確認の内容を「存在します」に変える
    バックアップ存在確認の背景色を緑に変える
    バックアップ存在確認の色を白に変える
    バックアップ保存場所の背景色を緑に変える
    バックアップ保存場所の色を白に変える
    バックアップから復元の有効を○に変える
      でなければ
    バックアップ存在確認の内容を「存在しません」に変える
    バックアップ存在確認の背景色を赤に変える
    バックアップ存在確認の色を白に変える
      バックアップ保存場所の背景色を赤に変える
    バックアップ保存場所の色を白に変える
    バックアップから復元の有効を×に変える
      もし終わり
    ーーセーブフォルダがない場合
    でなければ
    場所の背景色を赤に変える
    場所の色を白に変える
    フォルダ内データ列挙に「セーブデータのパスを確認してください」を加える
    フォルダ内データ列挙の色を赤に変える
    セーブフォルダ開くの有効を×に変える
    バックアップ存在確認の内容を「先にセーブデータのパスを確認してください」に変える
    バックアップ存在確認の背景色を赤に変える
    バックアップ存在確認の色を白に変える
      バックアップ保存場所の背景色を赤に変える
    バックアップ保存場所の色を白に変える
      展開先の背景色を赤に変える
    展開先の色を白に変える
    もし終わり
    終わり
    ーーバックアップ作成
    バックアップするがクリックされた時の手順
    もし「[バックアップ保存場所の内容]\[製品名の内容].zip」が存在するなら
    結果は、「すでにファイルが存在します。上書きしてもよろしいですか?」をはいといいえで警告アイコンにして質問したもの
        もし結果が「はい」なら
        ADVsaver:フォルダ圧縮
        でなければ
        「キャンセルしました」を情報アイコンで表示
        ADVsaver:更新する
        もし終わり
    でなければ
        ADVsaver:フォルダ圧縮
    もし終わり

    終わり

    フォルダ圧縮の手順
    場所の内容を「[バックアップ保存場所の内容]\[製品名の内容].zip」へ圧縮する
    「バックアップを保存しました」を情報アイコンで表示する
    ADVsaver:更新する
    終わり
    ーーバックアップ作成End

    ーーバックアップから復元
    バックアップから復元がクリックされた時の手順
    もし「[バックアップ保存場所の内容]\[製品名の内容].zip」が存在するなら
    ADVsaver:フォルダ解凍
    でなければ
    「バックアップが存在しません」を警告アイコンで表示
    ADVsaver:更新する
    もし終わり
    終わり

    フォルダ解凍の手順
    結果は、「すでにセーブデータが存在する場合、消去されますがよろしいですか?」をはいといいえで警告アイコンにして質問したもの
        もし結果が「はい」なら
        ーーここから
        場所の内容というフォルダを削除する
        「[バックアップ保存場所の内容]\[製品名の内容].zip」を展開先の内容へ解凍する
        「バックアップから復元しました」を情報アイコンで表示する
        ADVsaver:更新する
        でなければ
        「キャンセルしました」を情報アイコンで表示
        ADVsaver:更新する
        もし終わり
    終わり
    ーーバックアップから復元End

    ーー更新
    手動更新がクリックされた時の手順
    ADVsaver:更新する
    終わり

追加の手順
    データ変更の有効を×に変える
    手動更新の有効を×に変える
    リストボックス1をクリア
    リストボックス2をクリア
    フォルダ一覧は、「[今の位置]d\」のフォルダの一覧
    フォルダ一覧のすべての要素についてそれぞれ繰り返す
    リストボックス1に[要素]を加える
    繰り返し終わり
    終わり

リストボックス1が選択された時の手順
    もしリストボックス1の番号が0でないなら
    リストボックス2をクリア
    メーカー名の内容を「」に変える
    製品名の内容を「」に変える
    場所の内容を「」に変える
    バックアップ保存場所の内容を「」に変える
    展開先の内容を「」に変える
    データ変更の有効を×に変える
    ファイル一覧は、「[今の位置]d\[リストボックス1の内容]」のファイルの一覧
    ファイル一覧のすべての要素についてそれぞれ繰り返す
    データ名は、要素から「.d」を削除したもの
    リストボックス2に[データ名]を加える
    繰り返し終わり

    もし終わり
 終わり

リストボックス2が選択された時の手順
    もしリストボックス2の番号が0でないなら
    内容は、「[今の位置]d\[リストボックス1の内容]\[リストボックス2の内容].d」から読み込んだもの
    データは、内容を辞書化したもの
    メーカー名の内容をデータ(「メーカー名」)に変える
    製品名の内容をデータ(「製品名」)に変える
    場所の内容をデータ(「セーブデータのパス」)に変える
    バックアップ保存場所の内容をデータ(「バックアップのパス」)に変える
    展開先の内容をデータ(「バックアップ展開先」)に変える
    データ変更の有効を○に変える
    ADVsaver:更新する
      もし終わり
    終わり


データ変更がクリックされた時の手順
fp=「[今の位置]d\[リストボックス1の内容]\[リストボックス2の内容].d」
ADVsaverデータ変更を表示する
ADVsaverデータ変更:初期  
    終わり

リスト更新がクリックされた時の手順
    ADVsaver:追加
    終わり

新規追加がクリックされた時の手順
    ADVsaver新規追加を表示する
    終わり
終わり

最後に

このプログラム実はver2.0です。
というのもver1.0の時に不具合が多発してしまい新しく作り直してこの形になりました。
本来はexeファイルとしてダウンロードできるようにしたいのですが、そこまでするような需要がない気がしましたので各個人でお願いします。

最後まで見ていただきありがとうございます。

追記: ver2.1 修正版

当ページで公開したバグの修正を行いましたので変更箇所を書きます。

変更前

ADVsaver2.0
    フォルダ解凍の手順
    結果は、「すでにセーブデータが存在する場合、消去されますがよろしいですか?」をはいといいえで警告アイコンにして質問したもの
        もし結果が「はい」なら
        ーーここから
        場所の内容というフォルダを削除する
        「[バックアップ保存場所の内容]\[製品名の内容].zip」を展開先の内容へ解凍する
        「バックアップから復元しました」を情報アイコンで表示する
        ADVsaver:更新する
        でなければ
        「キャンセルしました」を情報アイコンで表示
        ADVsaver:更新する
        もし終わり
    終わり

変更後

ADVsaver2.1
    フォルダ解凍の手順
    結果は、「すでにセーブデータが存在する場合、消去されますがよろしいですか?」をはいといいえで警告アイコンにして質問したもの
        もし結果が「はい」なら
        ーーここから
        場所の内容というフォルダを削除する
        解凍先というフォルダ情報(「[展開先の内容]」)を作る
        「[バックアップ保存場所の内容]\[製品名の内容].zip」を解凍先の親へ解凍する
        「バックアップから復元しました」を情報アイコンで表示する
        ADVsaver:更新する
        でなければ
        「キャンセルしました」を情報アイコンで表示
        ADVsaver:更新する
        もし終わり
    終わり

修正した部分

変更点
解凍先というフォルダ情報(「[展開先の内容]」)を作る
「[バックアップ保存場所の内容]\[製品名の内容].zip」を解凍先の親へ解凍する

原因

ver2.0ではデータの置き換えによるデータ破損等を防ぐため、展開先のフォルダをいったん削除してから解凍するようにしていました。
ですが、プロデルのプラグインである7zip-32.dllの仕様上で存在しないフォルダへの展開時に自動的にフォルダが作られないため展開できず、スキップしていました。
そのため、一つ上の階層までは存在していることを確認しているので新しくフォルダ情報を作りバグが起きないように修正しました。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2