大きなログ ファイル (最大 500 mbs) を読み取り、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;
}
ファイルの各行を読み取り、それを listview の仮想取得方法に関連付けるにはどうすればよいですか?
私は最終的に検索を追加したいので、一致した行のみを表示します。
また、listView1.VirtualListSize を編集する方法もわかりません。これを一致の量に等しい変数にするにはどうすればよいですか? フォームをロードするときに値が必要だからだと思います。