繁体   English   中英

如何替换文本文件中已经存在的文本,以及如何在现有文本的行之间插入文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM