2 つのテキスト ファイルがあるとします。
A.txt:
Param1: Value1
Param2: Value2
.
.
.
.
ParamM: ValueM
B.txt
Param1: Value1
Param2: Value2
.
.
.
.
ParamN: ValueN
- A.txt内のパラメーターの数、つまりMは、 B.txt内のパラメーターの数、つまりNより大きくても、小さくても、等しくてもかまいません。
- 同じパラメーターの値は、 A.txtとB.txtで同じである必要はありません。
- MとNは、おそらく最大値 200 に達する可能性があります。
- パラメータ名は任意です。彼らには数字がありません。上記は単なる説明用でした。
私の目的は、A.txtとB.txtをマージすることです。競合が発生した場合、どちらが優先されるかを決定するファイル/メモリ内ストレージがあります。
例えば、
A.txtは次のようになります。
Path: C:\Program\Files
Data: ImportantInfo.dat
Version: 1.2.3
Useless: UselessParameter.txt
と
B.txtは次のようになります。
Path: C:\ProgramFiles
Data: NotSoImportant.dat
Version: 1.0.0
Useful: UsefulParameter.txt
最終的なテキスト ファイルは次のようになります。
Path: C:\ProgramFiles
Data: ImportantInfo.dat
Version: 1.2.3
Useful: UsefulParameter.txt
これについて考えるための私のアプローチは次のとおりです。
get a line from A.txt
get a line from B.txt
tokenize both by ":"
compare param names
if same
write A.txt's value to Result.txt
else if different
write A.txt's line into Result.txt
write B.txt's line into Result.txt /* Order doesn't really matter */
repeat above steps until end of both text files
このアプローチでは、A.txtに特定のパラメーターがあり、B.txtにない場合は処理されません。これを行うためのいくつかの軽量ライブラリ/API が存在する場合、非常に役立ちます。コマンドライン ツールを探しているわけではありません (system()
呼び出しのオーバーヘッドのおかげです)。
ありがとう!