我正在构建一个小应用程序,旨在简化.txt文件中显示的信息并在Excel(.CSV)中显示。
我已经获得了String的信息,并且我计划使用Nugget中提供的CSVExport库来构建excel文件。问题是我需要过滤和处理信息。 数据具有以下格式:
0001. 001.0001. 01. 3. 17. 07. 13. 12. 02.0002.V TT. .MTC1.
75.39.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.00.00.00.
00.00.00.00.00.00.00.16.
我打算隔离第一行(Header),保留其值,制定一个名为" Controller" - > " MTC1" ,第一次收集的日期" 13.07.2017 - 14.00h"," Type" - > " TT"
对于其他信息,我打算将每个数据" 75",#34; 39",#34; 00" ...放在每个单元格中第一次收集后5分钟,每个细胞。
Controller MTC1
Type TT
Start 20/10/2016 15:45
20/10/2016 15:45 52
15:50 50
15:55 00
16:00 00
...
我的问题是我将用于过滤信息的方法。 我一直在研究一些方法,但由于我缺乏经验,我似乎无法选择正确的方法。构建一个列表,StringBuffer ......
这是我迄今为止所做的事情:
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
CsvExport myExport = new CsvExport();
OpenFileDialog openFileDialog1 = new OpenFileDialog();
int first=0;
openFileDialog1.ShowDialog();
{
String line = "";
string[] Results = new string[500];
String filepath = openFileDialog1.FileName;
StreamReader sr = new StreamReader(filepath);
int i = 0;
while ((line = sr.ReadLine()) != null)
{
Results[i] += line;
i++;
}
Console.Write(Results[0]);
string csvpath = "C:\\counts.csv";
}
}
}
}
现在,使用这种格式的文件,您将如何过滤表格的值?
感谢。
答案 0 :(得分:1)
我认为你应该看看Split
方法(msdn docs)。您可以像这样使用它:
var sr = new StreamReader(filepath);
string[] header = null;
while (true)
{
var line = sr.ReadLine();
if (line == null)
break; // End of file
var lineParts = line.Split(" .".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
if (header == null)
{
// save first line
header = lineParts;
// now header[13] is equal "MTC1"
}
else
{
// process other lines by one
}
}
如果您需要在内存中构建字符串, StringBuilder
会很有帮助。在你的情况下,你似乎需要一个StreamWriter
对象。