我正在尝试实现将文件加载到程序中的情况。 我可以使用streamreader。 每条记录长7行。 因此,线1,8,15,22等都将保持相同的值。 如同2,9,16,23等等。
实现这一目标的最佳方法是什么?因此,当我在listview中加载记录时,它会识别我刚才所说的内容。 感谢
答案 0 :(得分:3)
当你说第1,第8,第15行等都将保持相同的值时,你是否真的意味着它们拥有相同类型的值?否则,为什么要阅读超过前7行呢?
我认为下面的内容可能有效(未测试代码)。
string data;
using(System.IO.StreamReader reader = new System.IO.StreamReader("filepath"))
{
data = reader.ReadToEnd();
}
string[] lines = data.Split(Environment.NewLine);
for(int index = 0; index < lines.Length; index += 7)
{
ListViewItem item = new ListViewItem();
for(int innerIndex = 0; innerIndex < 7; innerIndex++)
{
item.SubItems.Add(lines[index + innerIndex]);
}
listView1.Items.Add(item);
}
答案 1 :(得分:1)
听起来你需要创建一个代表每条记录的类(7条线中每条记录都有一个属性)。
打开您的信息流阅读器。
当有仍然要阅读的行时,开始循环。
对于循环的每次迭代,将7行读入7个变量,然后创建类的新实例,并将每个属性设置为适当变量中包含的值。
将该类添加到集合中(例如,List&lt; MyClass&gt;)。
您的ListView应该使用您构建的对象集合。您现在可以选择一个属性作为显示值。
答案 2 :(得分:0)
创建[num_lines / 7] x [7] 2D数组
for (int i=0;i<num_lines/7;i++)
for (int t=0;t<7;t++)
my2darray[i][t] = orig_array[i*7+t];
如果我正确理解您的问题,那将以理想的方式整理您的数据