[英]How to replace the text that was already exists in a text file and how can i insert text in between the lines of the existing text
大家好,我有一个文本文件,其中保存了一些数据,如下所示
101011111111101111111111009100954A094101 9000000000001000000000000000000000000000001000000000000000000000000000000000000000000000000000
现在我想在这两行之间插入数据
52201 1 1 CCD1 100910100910 1111111110000001 6211111111181 00000000011 1 1 0111111110000001 822000000101111111180000000000000000000000011 111111110000001
最终输出应如下
101011111111101111111111009100954A094101 52201 1 1 CCD1 100910100910 1111111110000001 6211111111181 00000000011 1 1 0111111110000001 822000000101111111180000000000000000000000011 111111110000001 9000000000001000000000000000000000000000001000000000000000000000000000000000000000000000000000
我也想根据第一行和第二行之间插入的行替换最后一行中的一些值。 谁能给我一个主意
您必须将文件读入数据结构(例如,行列表)。
然后像处理内存一样处理数据,创建新的行列表。
然后将它们写入文件。
对于大文件,请使用流。
某些操作系统具有特殊的文件格式,您可以在其中像对待数据库一样对待文件中的行:根据需要添加,更新和删除行。 我不相信您可以在Windows中执行此操作。
因此,您需要读取原始文件并将修改后的文件写入临时文件,然后删除(或保存)原始文件并重命名新文件。
如果整个文件很小,则将其读入内存,标识每一行并将其保留在数据结构(如列表)中。
如果文件大于内存大小,则需要读取它并分块重写,直到找到要更改的地方并在重写之前进行修改。
您没有指定已经完成的工作以及需要帮助的项目的哪一部分。
假设您有一个包含数据的字符串,并且想在行之间插入一些内容,则此代码将执行以下操作:
// Two lines of data
string data =
"101011111111101111111111009100954A094101\n" +
"9000000000001000000000000000000000000000001000000000000000000000000000000000000000000000000000";
// New data
string newdata =
"52201 1 1 CCD1 100910100910 1111111110000001 6211111111181 00000000011 1 1 0111111110000001 822000000101111111180000000000000000000000011 111111110000001";
// Insert the new data after the first line change
data = data.Insert(data.IndexOf("\n") + 1, newdata + "\n");
Console.WriteLine(data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.