我一直在研究如何读取大约 500mbs 的大型日志文件并使用 c# 将它们解析为 gui。我是相当新的使用列表视图的虚拟模式......
我决定使用具有虚拟模式的列表框(希望这可以处理大约 100 万条日志消息)。但我在将日志文件的行读取到列表框中时遇到问题。
我不想读取整个文件,因为它会使程序崩溃,所以我在 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;
}
如何读取文件的每一行并将其与列表视图的虚拟检索方法相关联?
我最终想添加搜索,所以它只显示匹配的行。
我也不确定如何编辑 listView1.VirtualListSize - 我如何使它成为一个等于匹配数量的变量?我认为因为它在我加载表单时需要一个值。