2017-06-29 9 views
0

質問[VISUAL BASIC] vb.netでのListViewに

をテキストファイルをエクスポートする方法を、私はこのスタイルでデータを持っているテキストファイルがあります:日、時間、LOGTYPE、セッションIDは、例えば

をLOGINID :

2017年12月12日21:59:13739 [7] INFO - Login.LoginUser_Authenticate - o03dx1c3hnfxz35ljee1mfcy不明 - ログイン:BST028991

2017年12月12日23:59:13839 [17] INFO - ログイン.LoginUser_Authenticate - o03dx1c3hnfxz35ljee1mfcy不明 - ログイン:BST345991

など.....

私は5列(テキストファイル内の各データフィールドの1)とのDataGridViewを作成したリストビュー enter image description here

にテキストファイルをエクスポートします。それがロードされるとき

私はこのコード

Private Sub SetListView(ByRef myListView As ListView) 
     myListView.View = View.Details 
     With myListView.Columns 
      .Add("day", 90) 
      .Add("time", 100) 
      .Add("logtype", 90) 
      .Add("sessionid", 170) 
      .Add("loginid", 150) 
     End With 

    End Sub 
Private Sub OpenFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OpenFolderToolStripMenuItem.Click 
    Dim TextFile As IO.StreamReader 
    Dim Line As String 
    OpenFileDialog1.Filter = "LOG FILE|*.log|TEXT FILE|*.text|ALL FILE|*.*" 
    If OpenFileDialog1.ShowDialog = DialogResult.OK Then 
     For x = 0 To OpenFileDialog1.FileNames.Count - 1 
      MessageBox.Show(OpenFileDialog1.FileNames(x)) 

      Me.LogListView.Items.Clear() 
      TextFile = New IO.StreamReader(OpenFileDialog1.FileNames(x), System.Text.Encoding.Default) 
      Line = TextFile.ReadLine() 
      Do While Line <> Nothing 
       Me.LogListView.Items.Add(Line) 
       Line = TextFile.ReadLine() 
      Loop 

      TextFile.Close() 
     Next 
    End If 
End Sub 

彼のコードでそれを試してみましたが、間違っている、テキストが1列のみ enter image description here

+0

例を見ると、デリミタでどのように分割するのかよくわかりません。通常、これは '、'で行います。ヘッダはこれを示唆していますが、あなたの例はそうではありません。それを明確にすることができれば、 '、'で分割して、これを使って必要なものである 'ListItem'と' SubItems'にプッシュすることができます。正直言って、私はあなたがファイルがどのようにレイアウトされているかでこれをするのに苦労するかもしれないと思います。 – Bugs

答えて

0

であるあなたはラインを爆発し、複数列のListViewItemのための新しいのListViewItemを作成する必要があります追加します。
次のコードを参照してください。

String[] arr = new String[5]; 
arr = explode(line); 

var item = new ListViewItem(new[] {arr[0],arr[1],arr[2],arr[3],arr[4]}); 
myListView.Items.Add(item); 

これは「Lightning3」のコードですが、私は書式設定を行うことができます。

Dim arr As [String]() = New [String](4) {} 
arr = explode(line) 

Dim item = New ListViewItem(New() {arr(0), arr(1), arr(2), arr(3), arr(4)}) 
myListView.Items.Add(item) 
関連する問題