Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
[VISUAL BASIC]如何在vb.net中将文本文件导出到ListView_Vb.net_Listview_Datagridview - Fatal编程技术网

[VISUAL BASIC]如何在vb.net中将文本文件导出到ListView

[VISUAL BASIC]如何在vb.net中将文本文件导出到ListView,vb.net,listview,datagridview,Vb.net,Listview,Datagridview,问题: 我有一个文本文件,其中包含以下样式的数据:日期、时间、日志类型、sessionID、loginID 例如: 2017-12-12 21:59:13739[7]信息-Login.Login用户身份验证-o03dx1c3hnfxz35ljee1mfcy未知-登录:BST028991 2017-12-12 23:59:13839[17]信息-Login.LoginUser_Authenticate-o03dx1c3hnfxz35ljee1mfcy未知-登录名:BST345991 等等 我想将文

问题:

我有一个文本文件,其中包含以下样式的数据:日期、时间、日志类型、sessionID、loginID

例如:

2017-12-12 21:59:13739[7]信息-Login.Login用户身份验证-o03dx1c3hnfxz35ljee1mfcy未知-登录:BST028991

2017-12-12 23:59:13839[17]信息-Login.LoginUser_Authenticate-o03dx1c3hnfxz35ljee1mfcy未知-登录名:BST345991

等等

我想将文本文件导出到ListView

我创建了一个带有5列的datagridview(文本文件中每个数据字段一列)

我用这个密码试过了

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
私有子集合ListView(ByRef myListView作为ListView)
myListView.View=View.Details
使用myListView.Columns
.添加(“日”,90)
.加上(“时间”,100)
.添加(“日志类型”,90)
.添加(“sessionid”,170)
.Add(“loginid”,150)
以
端接头
私有子OpenFolderToolStripMenuItem\u Click(发送者作为对象,e作为事件参数)处理OpenFolderToolStripMenuItem。单击
将文本文件设置为IO.StreamReader
将线变暗为字符串
OpenFileDialog1.Filter=“日志文件|*.LOG |文本文件|*.TEXT |所有文件|*.*”
如果OpenFileDialog1.ShowDialog=DialogResult.OK,则
对于x=0,打开filedialog1.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()
什么都不要做
Me.LogListView.Items.Add(行)
Line=TextFile.ReadLine()
环
TextFile.Close()
下一个
如果结束
端接头
他的代码是错误的,加载时,文本只有一列

您需要分解该行并为多栏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)

看看您的示例,我不太明白如何用分隔符将其拆分。通常使用
执行此操作。您的标题建议了这一点,但您的示例没有。如果您可以澄清这一点,那么您可以在
上拆分,并使用此按钮推送到所需的
列表项
子项
。老实说,我认为你可能很难做到这一点与文件的布局。