gpt4 book ai didi

c# - 如何逐行读取和替换文本文件中的字符串?

转载 作者:太空狗 更新时间:2023-10-29 19:59:31 24 4
gpt4 key购买 nike

我有一个文本文件,内容如下:

INSERT INTO `shops` VALUES ('', '3', '1000000', '0');
INSERT INTO `shops` VALUES ('', '3', '1000010', '0');
INSERT INTO `shops` VALUES ('', '3', '1000020', '0');
INSERT INTO `shops` VALUES ('', '3', '1000030', '0');
INSERT INTO `shops` VALUES ('', '3', '1001000', '0');

注意每一行的第一个键是''。对于每一行,我想找到那个 '',并将其替换为一个数字(从 1 开始),然后在它转到下一行时向其添加 1,如下所示:

INSERT INTO `shops` VALUES ('1', '3', '1000000', '0');
INSERT INTO `shops` VALUES ('2', '3', '1000010', '0');
INSERT INTO `shops` VALUES ('3', '3', '1000020', '0');
INSERT INTO `shops` VALUES ('4', '3', '1000030', '0');
INSERT INTO `shops` VALUES ('5', '3', '1001000', '0');

几个小时以来我一直在尝试这样做,但我失败了。

这是我一直在想的(我知道这是不对的,但我对 C# 不是那么精通,所以也许你们中的一个可以帮助我想出正确的代码):

string text = File.ReadAllText("C:\\Users\\Donavon\\Desktop\\old.sql");

int i = 0;
text = text.Replace("('',", "('" + i + "',");
i++;
File.WriteAllText("C:\\Users\\Donavon\\Desktop\\new.sql", text);

感谢您的帮助,非常感谢

最佳答案

你会想要按照这些思路做一些事情:

var lineNumber = 0;

using (var newFile = File.AppendText(@"c:\temp\new.sql"))
{
foreach (var line in File.ReadLines(@"c:\temp\old.sql"))
{
lineNumber++;

var updatedLine = line.Replace("('',", "('" + lineNumber.ToString() + "',");

newFile.WriteLine(updatedLine);
}
}

使用 File.ReadLines枚举行,这样你就不会遇到大文件的内存异常

关于c# - 如何逐行读取和替换文本文件中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32274427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com