2013-04-23 200 views
-6

我有一个txt文件是制表符分隔,就像这样:的文本文件转换成CSV文件用C#

Well  Name  Detector  Task Quantity 
1   try1  Cam1   UNKN 0 
2   try2  Cam1   UNKN 0 
3   try3  Cam3   STND 1000 
4   try4  Cam5   UNKN 0 
5   try5  Cam6   UNKN 0 
6   try6  Cam6   UNKN 0 
.... 
92   try92  Cam4   STND 100 

我需要输出从这个TXT文件CSV文件。 在输出的CSV文件中,我需要将分隔符从Tab更改为分号,我只需要前两列。

我把文本文件中的一个阵列:

string [] source.... 

也跳过某些标题行,我不需要,

但现在我被困在如何继续下去。

我知道StreamReader和StreamWriter,但我不知道如何使用它们来完成我的任务。

任何帮助将不胜感激。

谢谢!

+2

你为什么不告诉我们你做了什么,到目前为止,我们可以帮助你找出你得到了什么? – Crisfole 2013-04-23 14:29:54

+0

正如我所说,我被卡住后创建数组... – user1776401 2013-04-23 14:31:10

+1

第1步:解析CSV:http://stackoverflow.com/questions/2081418/parsing-csv-files-in-c-sharp。第2步:使用StreamWriter或其他创建文本文件。 – 2013-04-23 14:31:41

回答

-1

希望这给你的想法,所以尝试了解每个部分。

string[] lines = System.IO.File.ReadAllLines(YOUR INPUT FILE); 

StringBuilder builder = new StringBuilder(); 

foreach (string line in lines) 
{ 
    var temp = line.Split('\t'); 
    builder.AppendLine(string.Join(";", temp[0], temp[1])); 
    //builder.AppendLine(string.Format("{0}; {1}", temp[0], temp[1])); 
} 

System.IO.File.WriteAllText(YOUR OUTPUT FILE, builder.ToString()); 
  • File.ReadAllLines:读取文件的所有行成string[]
  • File.WriteAllText:写一个字符串到一个文件中。
  • StringBuilder:这个类表示一个类似字符串的对象。
  • AppendLine:将一个字符串行添加到StringBuilder实例。
  • string.Format:将指定字符串中的每个格式项替换为相应对象值的文本。 More
+0

然后关键是不读取数组中的文本文件,而是读取列表中的文本文件。我需要更好地理解做这项工作的路线:“builder.AppendLine ...”。关于{1} ...它有什么作用? – user1776401 2013-04-23 14:42:26

+0

@ user1776401你可以将它读入数组中。 – 2013-04-23 14:44:21

+0

您正在重塑车轮。自己解析CSV文件可能不需要。 – 2013-04-23 14:45:48