如何修改文件夹中所有文件的代码

How can I modify code of all files in folders

本文关键字:文件 代码 文件夹 何修改 修改      更新时间:2023-10-16

我需要对很多文件(C++)进行一些重复修改。我需要用sprintf()替换所有的strcpy()和strcat()。我发现转换会是这样的:

strcpy(out,in) would be sprintf(out,%d,in)

strcat(out,in) would be sprintf(out,out%d,in) 

我可以用什么工具来快速进行所有更换,我不能手动进行,有9000多个工具需要修改。

谢谢你的建议。

我使用的是windows xp/linux Ubuntu

我之所以这么做,是因为我们计划实现一种翻译代码的方法。因为我们使用的是strcat等等,所以我们无法使情景翻译工作得很好。因为要写入所有内容的文件将按照正确的顺序包含所有内容

我会使用编译器,或者更准确地说,使用预处理器。

具体来说,我会找到一个项目范围的标题,并在其中添加几行,如:

#define strcpy(out, in) sprintf(out, "%s", in)
#define strcat(out, in) sprintf(out+strlen(out), "%s", in)

并将源代码的其余部分放在一边。然后,当你恢复理智时,很容易变回理智,并在它们应该在的地方使用strcpy/strcat

您应该使用任何好的源编辑器(如notepad++)来根据正则表达式替换字符串。但是,在尝试用一个表达式更改9k行之前,不要忘记将所有文件备份到一个单独的位置。

问候

首先,替换为:

strcpy(out,in) to sprintf(out, "%s", in)

strcat(out,in) to do{ int temp = strlen(out); sprintf(out+temp, "%s", in); } while(0)

其次,要进行此更改,取决于您的操作系统。如果您在Linux或macOS下,或者在Windows下可以访问Linux工具,则可以使用接受正则表达式的sed

在普通的窗户里,我不知道。