2010-09-10 61 views
0

大家好我有保存一些数据的文本文件如下如何更换一个已经存在于一个文本文件中的文本,我怎么能在现有文本

 
101011111111101111111111009100954A094101              
9000000000001000000000000000000000000000001000000000000000000000000000000000000000000000000000 

的行之间插入文本现在我想在这些2行之间插入数据作为

 
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 

并且我想根据第一行和第一行之间插入的行替换最后一行中的一些值。所以,任何人都可以给我一个想法

+0

这是结构化的固定长度字段? – Larry 2010-09-10 06:15:21

+0

雅固定​​的长度每行只有94个字符 – Dotnet 2010-09-10 07:35:46

回答

1

你必须将文件读入数据结构(例如行列表)。

然后像处理内存一样处理数据,创建一个新的行列表。

然后将它们写入文件。

对于大文件使用流代替。

0

某些操作系统具有特殊的文件格式,您可以像处理数据库一样处理文件中的行:根据需要添加,更新和删除行。我不相信你可以在Windows中做到这一点。

因此,您需要读取原始文件并将修改后的文件写入临时文件,然后删除(或保存)原始文件并重命名新文件。

如果整个文件很小,则将其读入内存中,识别每一行并将它们保存在数据结构中,如List。

如果文件比内存大,那么你需要读取它并重写它,直到你找到你正在改变的plkace并在重写之前进行修改。

0

您没有指定您已经完成的工作,以及您需要帮助的项目部分。

假设你有数据的字符串和要插入的行之间的事情,这个代码将做到这一点:

// 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); 
+0

数据将不会相同,我应该从文本文件 – Dotnet 2010-09-10 07:47:24

+0

het它然后,我建议你看看C#教程如何打开和阅读文本文件。在寻求帮助之前,您至少应该遇到问题:-) – Hubro 2010-09-10 09:50:28

相关问题