私は、インディーズゲームDwarfFortressのMODを開発する最終段階にあります。モッドが正常に動作する前に最後に必要となるのは、ドワーフ要塞のRAWを変更することです。ゲームに投入される数百のクリーチャーに関する情報を含むテキストファイルが20個ほどあります。テキストファイルのディレクトリ内の単語の検索と置換
これは技術的な観点から、テキストファイルのディレクトリを通過し、基本的に「検索と置換」操作を実行して各行を変更します。
私のプログラミング経験のほとんどは、オブジェクト指向言語(C#とJava)、そしてAssemblerとCの経験です。しかし、これらの言語はこの種のタスクには最適ではありません。
Dwarf Fortress RAWが書かれているため、非常にシンプルな置き換えであるという点で、テキストファイルをさらに下げるまで行を置換する必要があるかどうかはわかりません。以下に、簡略化されたシナリオの例を示します。
[CREATURE:WOLF]
...
[Many irrelevant lines of tokens]
...
[BODY_DETAIL_PLAN:STANDARD_MATERIALS]
[BODY_DETAIL_PLAN:STANDARD_TISSUES]
...
[Many more irrelevant lines of tokens]
...
[MULTIPLY_VALUE:2]
私は[MULTIPLY_VALUE:X]に通読できるようにするニーズを書きたいプログラムライン、その後戻って、[BODY_DETAIL_PLAN:Z]を含む二行置き換える[BODY_DETAIL_PLAN:Y]とを、 Yは、Xの読み取り値に依存して変化するところ
私は二つのことを保証することができますで
- を最も 1 [MULTIPLY_VALUE:X]の行の間に表示されます[CREATURE:A]と[CREATURE: B]または[CREATURE:Z]とファイルの末尾に入力します。
- の[BODY_DETAIL_PLAN:Z]行の後に、[MULTIPLY_VALUE:X]行が常にになります(存在する場合)。
私が持っているコーディング経験に基づいて、実行可能なアイデアに最も近いのは、読み込み線の位置を '保存'するポインタを使用してファイルを読み込むCプログラムを作成し、ファイルリーダーは新しいRAWの開始を検出します。無粋として私を打つし、検索を実行するには経験がない私のトラブルに実行されます
しかし、/最初の場所でC関数(または任意の言語)を交換してください。
手作業で各テキストファイルを調べるという単調な作業を実現するための簡単な方法はありますか?私は全く新しいプログラミング言語を学びたいと思っていますが、どの言語がこの状況を処理するのが最も簡単かはわかりません。
提案?
Perl、Python、Rubyなどのスクリプト言語に最適なタスクのようです。それらの言語は、朝食のためにそのようなことをします。しかし、1つの質問..ファイルのどこか他の場所にMULTIPLY行がありますか?私。あなたはCREATUREセグメントでそれを見つけるためにインテリジェンスを必要としますか、ファイル全体の任意のMULTIPLY行でブラインドを置き換えることができますか? – Casper
@Casper - はい、私はスクリプト言語がうまくいくかもしれないと思っていましたが、スクリプト言語の経験はありません。問題は、置き換える必要のあるMULTIPLY行ではなく、MULTIPLY行の存在が別の行を*で置き換えるべきかどうかを指定することです。 –