我正在尝试找到一种方法来替换文件中的字符串标记的所有实例与另一个字符串.
如何使用win32 API在C++中执行此操作?
在其他语言中,这是一件容易的事情,但在C++中我只是迷失了.
编辑:对于某些上下文,这是一个WiX自定义操作.因此,可移植性不是主要优先级,只是最简单的解决方案.
如果文件适合内存 - 它更简单.调用OpenFile()打开文件,GetFileSize()确定文件大小,分配足够的内存,调用ReadFile()读取文件,然后调用CloseFile.在内存中替换(使用strstr()或类似函数),然后再次使用OpenFile(),WriteFile(),CloseFile().
如果文件很大 - 创建一个临时文件并以块的形式读取源文件并将过滤后的文本写入临时文件,然后调用DeleteFile()删除原始文件,调用MoveFile()移动过滤后的文件.