| 2010/02/19(Fri) 18:34:40 編集(投稿者)
あかんべえです。
1.まず、 > とりあえず同じイベントファイル中では > 同じ名前のファイルのインクルードは一度しか行えないということでよろしいですか? > 私はここがよくわかりません。 > インクルードはできるのに逆に消すことができないというのもなんだか変な気がします。
いや、インクルードは複数回できるけど、前回の内容が削除されずに多重インクルード状態になる、ということです。
2.イベントファイル自動書き換えの危険性について、改めて。 特に危険なのは、文字通りの「書き換え」というか、イベントファイルの特定行や特定行の特定の位置の文字を書き換える場合です。この場合は、トラブルやプレーヤーの加筆によって、書き換え位置がずれる可能性もあるので危険、ということです。 そうではなく、 ・ 古いファイルを削除し、新しい同名ファイルを作る場合 ・ ファイルの末尾に新しいサブルーチンなどを「追加」する場合 は、それほど危険ではありません。が、この場合も、やはり外部入出力ですので、プログラムはややこしく、実行時間のかかるものになります。なので、他に方法がないときに限るのが原則と思います。 (書き換え・ファイル入れ替え・追加のどれを意図されているのか、ちょっとわかりませんでした)
3.ご説明を読む限りでは、インクルードファイルを書き換える必要はないように思えます。
代わりの手順は、 (1) LineReadコマンドなどを使い、CSVを読み込んで各データを配列変数に入れる。 たとえば、 セット名[現セットナンバー] に "テストロス" 種別[現セットナンバー, 1] に "アサッケー" 種別[現セットナンバー, 2] に "マッキー" 結果[現セットナンバー, 1, 種別[現セットナンバー, 1]] に "ワウ" 結果[現セットナンバー, 1, 種別[現セットナンバー, 2]] に "ドドロス" 結果[現セットナンバー, 2, 種別[現セットナンバー, 1]] に "バケラッタ" 結果[現セットナンバー, 2, 種別[現セットナンバー, 2]] に "モス" を入れるとします。
もし「テストロス」以下のデータセットが一度に一つだけしか有効でないのなら、「現セットナンバー」は必要なく、少し簡略になります。
(2) 現セットナンバー・ケース番号(1, 2)・種別値(アサッケー, マッキーなど)から結果値を呼び出すサブルーチンを作ります
# Args(1)は現セットナンバー、Args(2)はケース番号 # Args(3)は種別値 結果が存在しなかったら -1 を返す 詳細情報: If IsVarDefined(結果[Args(1), Args(2), Args(3)]) = 1 Then Return 結果[Args(1), Args(2), Args(3)] Else Return -1 EndIf Return
これで、サブルーチン「テストロス詳細情報」およびそのバリエーションと同等のことができると思います。 なお、CSVデータの作成方法が明示されてないので断言はできませんが、CSVの書き換えも不用かもしれません。
|