读书人

非常急的有关问题关于文件操作的有关

发布时间: 2012-03-13 11:21:12 作者: rapoo

非常急的问题,在线等~~~~关于文件操作的问题,请高手指点指点。。。。。。
现在小弟主要想实现两个文本之间内容的替换:
1.txt:
01 02 03 04 05 06 07 08 09
1| , , , , 01 02 03 01 05 06 , , , , ,
2| , , , , , , ,04 02 01 06 07 , , , ,
...........
2.txt:
01 02 03 04 05 06 07 08 09
1| . . M M P F F P F F M M M . .
2| . . . . M M M F F F P F M M . .
.......
简单点的说法对1.txt进行操作就是从界面上任意输入比如01什么的,如果找到01就用P来替换,其他的比如02 03就用F来替换但是1| , , ,这一些不能变.
PS:对1.txt进行了替换操作之后,比如我输入03即1.txt变成了
01 02 03 04 05 06 07 08 09
1| , , , , F F P F F F , , , , ,
2| , , , , , , , F F F F F , , , ,
...........
完成了这步,我根据替换后的1.txt再来将
1| , , , , F F P F F F , , , , ,
2| , , , , , , , F F F F F , , , ,
中的F,P想对应的替换2.txt的F,P,即变化之后的2.txt应该为:
01 02 03 04 05 06 07 08 09
1| . . M M F F P F F F M M M . .
2| . . . . M M M F F F F F M M . .
这就是我所需要的结果,但不知道大家是否明白.知道的请大家指点指点.谢谢了。


[解决办法]
把文件读出来替换不就得了,没觉得有什么难得
[解决办法]
1.申请三个动态数组arryA,arryB,arryC,将1.TXT和2.TXT中的字符分别读入arryA和arryB中;
2.对arryA进行你所需的替换;
3.将替换后的arryA和arryB条件性的拷贝到arryC:
从0开始,在某个索引位置,若需要用arryA的字符替换arryB的字符,则向arryC的这个索引位置中填充arryA的字符;若不需要用arryA的字符替换arryB的字符,则向arryC的这个索引位置中填充arryB的字符.循环至arryA或arryB索引的最后一位,若arryA比arryB的索引值大(arryA比arryB长),则将arryA的剩余字符串填充到arryC;反之,则将arryB的剩余字符串填充到arryC;
4.将arryC中的字符串写入3.TXT.

[解决办法]
就是重写一下CString::Replace好了
大致流程是
循环
查找目标字符串(CString::Find)
如果目标字符串起始位置> =0且未到末尾
从对应文件中获得要替换的字符串
修改字符串(比如:CString str; str[3] = ' ';)
循环结束
[解决办法]
上面写的都很清楚了,你可以就几个字节几个字节的判断一行,在每一行的一开始去掉前面的两个行符然后进行判断就行了,然后再替换写入到另外一个文件中,最后将这个文件重命名就行了.
[解决办法]
总之没有简单的调用一个函数就完成的,方法不难,就是麻烦点,一步一步耐心做下去。

读书人网 >VC/MFC

热点推荐