假设我有 2 个文本文件:
一个.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()
调用的开销)。
谢谢!