我一直在研究如何读取大型日志文件,~500mbs并使用c#将它们解析为gui。我对listview使用虚拟模式相当新...
我决定使用带有虚拟模式的列表框(希望这可以处理大约1mil的日志消息)。但是我在将日志文件的行读入列表框时遇到了问题。
我不想读取整个文件,因为它会使程序崩溃,所以我在foreach语句中使用File.ReadLines。
我想我无法处理RetrieveVirtualItem处理程序来读取我的文件,并获取一个新行并用
填充它 private void listView1_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
ListViewItem lvi = new ListViewItem();
lvi.Text = addList(); // need to read a new row
ListViewItem.ListViewSubItem lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = e.ItemIndex.ToString("n");
lvi.SubItems.Add(lvsi);
e.Item = lvi;
}
如何读取文件的每一行并将其与listview的虚拟检索方法相关联?
我最终想要添加搜索,因此它只显示匹配匹配的行。
我也不确定如何编辑listView1.VirtualListSize - 如何使这个变量等于匹配量?我认为因为我加载表单时需要一个值。