使用 C# 将文本文件转换为 CSV 文件 [关闭]
Posted
技术标签:
【中文标题】使用 C# 将文本文件转换为 CSV 文件 [关闭]【英文标题】:Convert a Text File into a CSV File with C# [closed] 【发布时间】:2013-04-16 19:46:02 【问题描述】:我有一个制表符分隔的 txt 文件,如下所示:
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,但我不知道如何使用它们来完成我的任务。
任何帮助将不胜感激。
谢谢!
【问题讨论】:
您为什么不向我们展示您到目前为止所做的工作,以便我们帮助您找出问题所在? 第 1 步:解析 CSV:***.com/questions/2081418/…。第 2 步:使用 StreamWriter 或其他东西创建文本文件。 啊,这是一个巨大的差异。尝试转换它怎么样?还是您希望我们为您做这些? @user1776401:真的,不要偷懒。研究、尝试、思考、开发! 我一点也不懒。我整天都在努力做到这一点。而且我不希望任何人代替我做某事...但是...如果这是我能在这里得到的最佳建议...我可以独自获得它而无需发布任何内容。发布对其他人有帮助,没有一些无用的评论,因为我一直在网上搜索一些提示但没有找到任何提示。 【参考方案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
【讨论】:
那么关键不是读取数组中的文本文件,而是读取列表中的文本文件。我需要更好地理解完成这项工作的行:“builder.AppendLine ...”。关于 1...它有什么作用? @user1776401 你可以将它读入一个数组。 你在重新发明***。可能不需要自己解析 CSV 文件。 @L-Three 如果您发布您的解决方案,我们将不胜感激。 侯赛因·纳里马尼·拉德,真的……谢谢!阅读一些代码总是最好的学习方式,IMO。你能发布在数组中读取 txt 的方法吗?以上是关于使用 C# 将文本文件转换为 CSV 文件 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
C# 将 csv 转换为 xls(使用现有的 csv 文件)