[英]How can I process this file in C#?
我有一个包含数百个这样格式的条目的文本文件,我需要在数据网格上显示此文件,或者根据您的建议“正确格式化”其他用户友好控件。 (我的意图是将其导出为excel 而不是最佳选择,但需要进一步处理。所有列都是以毫秒为单位的值,因此大多数时候这些值都非常大,最多可达3小时,所以我需要将它们转换为小时/分钟/秒。)处理此任务的最佳方法是什么? 可以使用StreamReader完成吗? 转换是否可以在代码中进行,因此无需导出到Excel? 有样品吗? 谢谢!
ENTRY DAY ENTRY TIME IN.WORK TEST % TRY CORRER CORTA CICLO MAQUI
O0.TXT
11/07/28 13:39:13 0 0 105 0 0 0 0
O0.TXT
11/07/20 00:00:00 0 0 19145 0 0 0 0
O0.TXT
11/07/19 15:04:10 0 0 32151 0 0 0 0
我想格式化它:
FILE ENTRY DAY ENTRY TIME IN.WORK TEST % TRY CORRER CORTA CICLO MAQUI
O0.TXT 11/07/28 13:39:13 0 0 105 0 0 0 0
O0.TXT 11/07/20 00:00:00 0 0 19145 0 0 0 0
O0.TXT 11/07/19 15:04:10 0 0 32151 0 0 0 0
O0.TXT 11/07/07 05:22:40 0 0 508 0 0 0 0
我试过用:
string fileName = "Myfile.txt";
StreamReader sr = new StreamReader(fileName);
string[] delimiter = new string[] { " " };
while (!sr.EndOfStream)
{
string[] lines = sr.ReadLine().Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
foreach (string line in lines)
{
........
但是我根本无法保存我想要的格式,也没有将它加载到数据网格等等。
string fileName = "Myfile.txt";
string[] delimiter = new string[] { " " };
List<string[]> rows = new List<string[]>();
string[] liens = File.ReadAllLines(fileName);
foreach (string line in liens)
{
rows.Add(line.Split(delimiter, StringSplitOptions.RemoveEmptyEntries));
}
//Now if you want to display them each one row item separated by tab "`\t"` or csv `","`
string separator = "\t";
List<string> output = new List<string>();
foreach (string[] row in rows)
{
output.Add(string.Join(separator, row));
}
string newFile = "result.txt";
File.WriteAllLines(newFile, output.ToArray());//save the output to new file.
一切都固定了吗? 例如,日期总是6个字符和8个字符长(或者不管是什么情况)? 如果是这样,我会拆分“\\ r \\ n”而不是“”,然后单独处理每一行。 你可以这样做:
string fileName = "Myfile.txt";
StreamReader sr = new StreamReader(fileName);
string[] delimiter = new string[] { "\r\n" };
while (!sr.EndOfStream)
{
string[] lines = sr.ReadLine().Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
foreach (string line in lines)
{
date = line.Substring(6, 8);
// Do the other processing here.
}
}
当然,您必须为需要处理的行提供一些逻辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.