Vb.net 在vb中编辑CSV

Vb.net 在vb中编辑CSV,vb.net,csv,Vb.net,Csv,我从早期版本的软件中导出了CSV,并希望将其导入到新版本中,但我只希望CSV中的两列,并在我按列顺序单击windows窗体中的按钮1时显示出来。这可以做到吗?如何做到 如果您不理解,请留言,并将详细介绍 到目前为止,我已经有了这个,但它只显示了CSV Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Cl

我从早期版本的软件中导出了CSV,并希望将其导入到新版本中,但我只希望CSV中的两列,并在我按列顺序单击windows窗体中的按钮1时显示出来。这可以做到吗?如何做到

如果您不理解,请留言,并将详细介绍

到目前为止,我已经有了这个,但它只显示了CSV

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim dx As Long = 0
    Dim dRow As Long = 0
    Dim dColumn As Long = 0
    Dim dTotalRows As Long = 0
    Dim dTotalColumns As Long = 0
    Dim dFileName As String = ""
    Dim dReadLine As String = ""
    Dim dChar As String = ""
    Dim dArray(1, 1) As String
    Dim dStart As Long = 1
    Dim dEnd As Long = 1
    Dim dLen As Long = 0
    Dim dLineLength As Long = 0
    Dim dQuoteCounter As Long = 0
    Dim dAdd2ItemList As String = ""
    dFileName = "E:\test docs/test.csv"
    FileOpen(1, dFileName, OpenMode.Input, OpenAccess.Default, OpenShare.Default, -1)
    Do While Not EOF(1)
        dReadLine = LineInput(1)
        dRow = dRow + 1
        dTotalColumns = dColumn
        dColumn = 0
        dLineLength = Len(dReadLine)
        For dx = 1 To dLineLength
            dChar = Mid(dReadLine, dx, 1)
            If dChar = Chr(34) Then
                dQuoteCounter = dQuoteCounter + 1
                If dQuoteCounter = 2 * (Int(dQuoteCounter / 2)) Then
                    dChar = Mid(dReadLine, dx, 2)
                    If dChar = Chr(34) + "," Then
                        dColumn = dColumn + 1
                        dQuoteCounter = -1
                        If Chr(34) = dChar + "," Then
                            dQuoteCounter = -1
                            dColumn = dColumn + 1
                        End If
                    End If
                End If
            End If
            If dQuoteCounter = 0 And dChar = "," Then
                dColumn = dColumn + 1
            End If
            If dx = dLineLength Then
                dColumn = dColumn + 1
            End If
            If dQuoteCounter = -1 And dChar = "," Then dQuoteCounter = 0
        Next (dx)
    Loop
    dTotalRows = dRow
    ReDim dArray(dTotalRows, dTotalColumns)
    FileClose(1)
    dRow = 0
    FileOpen(1, dFileName, OpenMode.Input, OpenAccess.Default, OpenShare.Default, -1)
    Do While Not EOF(1)
        dAdd2ItemList = ""
        dRow = dRow + 1
        dStart = 1
        dEnd = 1
        dLen = 0
        dColumn = 0
        dReadLine = LineInput(1)
        dLineLength = Len(dReadLine)
        For dx = 1 To dLineLength
            dChar = Mid(dReadLine, dx, 1)
            If dChar = Chr(34) Then
                dQuoteCounter = dQuoteCounter + 1
                If dQuoteCounter = 1 Then dStart = dx + 1
                If dQuoteCounter = 2 * (Int(dQuoteCounter / 2)) Then
                    dChar = Mid(dReadLine, dx, 2)
                    If dChar = Chr(34) + "," Then
                        dEnd = dx
                        dLen = dEnd - dStart
                        dColumn = dColumn + 1
                        dArray(dRow, dColumn) = Mid(dReadLine, dStart, dLen)
                        dAdd2ItemList = dAdd2ItemList + dArray(dRow, dColumn) + "|"
                        dQuoteCounter = -1
                        dStart = dx + 2
                    End If
                End If
            End If
            If dQuoteCounter = 0 And dChar = "," Then
                dEnd = dx
                dLen = (dEnd - dStart)
                dColumn = dColumn + 1
                If dLen < 1 Then
                    dArray(dRow, dColumn) = ""
                    dAdd2ItemList = dAdd2ItemList + dArray(dRow, dColumn) + "|"
                Else
                    dArray(dRow, dColumn) = Mid(dReadLine, dStart, dLen)
                    dAdd2ItemList = dAdd2ItemList + dArray(dRow, dColumn) + "|"
                End If
                dStart = dx + 1
            End If
            If dx = dLineLength Then
                dEnd = dx
                dLen = (dEnd - dStart) + 1
                dColumn = dColumn + 1
                If dLen < 1 Then
                    dArray(dRow, dColumn) = ""
                    dAdd2ItemList = dAdd2ItemList + dArray(dRow, dColumn)
                Else
                    dArray(dRow, dColumn) = Mid(dReadLine, dStart, dLen)
                    dAdd2ItemList = dAdd2ItemList + dArray(dRow, dColumn)
                End If
                dStart = dx + 1
            End If
            If dQuoteCounter = -1 And dChar = "," Then dQuoteCounter = 0
        Next (dx)
        ListBox1.Items.Add(dAdd2ItemList)
        REM dRow = dRow + 1
    Loop
End Sub
公共类表单1
私有子按钮1\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮1。单击
长度为0时的尺寸dx
长=0时变暗卓尔
Dim D列的长度=0
Dim dTotalRows的长度=0
Dim dTotalColumns的长度=0
Dim dFileName As String=“”
Dim DRADLINE As String=“”
Dim dChar As String=“”
暗暗光线(1,1)作为字符串
当长度=1时,开始变暗
当长度=1时变暗
当长度=0时变暗
长度为0的尺寸线长度
尺寸dQuoteCounter的长度=0
Dim dAdd2ItemList As String=“”
dFileName=“E:\test docs/test.csv”
FileOpen(1,dFileName,OpenMode.Input,OpenAccess.Default,OpenShare.Default,-1)
不执行时执行EOF(1)
dReadLine=LineInput(1)
卓尔=卓尔+1
dTotalColumns=dColumn
dColumn=0
dLineLength=Len(恐惧线)
对于dx=1至dLineLength
dChar=Mid(恐惧线,dx,1)
如果dChar=Chr(34),则
dQuoteCounter=dQuoteCounter+1
如果dQuoteCounter=2*(Int(dQuoteCounter/2)),则
dChar=Mid(恐惧线,dx,2)
如果dChar=Chr(34)+“,则
dColumn=dColumn+1
dQuoteCounter=-1
如果Chr(34)=dChar+,“那么
dQuoteCounter=-1
dColumn=dColumn+1
如果结束
如果结束
如果结束
如果结束
如果dQuoteCounter=0且dChar=“,”则
dColumn=dColumn+1
如果结束
如果dx=dLineLength,则
dColumn=dColumn+1
如果结束
如果dQuoteCounter=-1和dChar=“,”则dQuoteCounter=0
下一个(dx)
环
dTotalRows=dRow
重读dArray(dTotalRows,dTotalColumns)
文件关闭(1)
卓尔=0
FileOpen(1,dFileName,OpenMode.Input,OpenAccess.Default,OpenShare.Default,-1)
不执行时执行EOF(1)
dAdd2ItemList=“”
卓尔=卓尔+1
dStart=1
dEnd=1
dLen=0
dColumn=0
dReadLine=LineInput(1)
dLineLength=Len(恐惧线)
对于dx=1至dLineLength
dChar=Mid(恐惧线,dx,1)
如果dChar=Chr(34),则
dQuoteCounter=dQuoteCounter+1
如果dQuoteCounter=1,则dStart=dx+1
如果dQuoteCounter=2*(Int(dQuoteCounter/2)),则
dChar=Mid(恐惧线,dx,2)
如果dChar=Chr(34)+“,则
dEnd=dx
dLen=dEnd-dStart
dColumn=dColumn+1
dArray(卓尔,D列)=中间(恐惧线,德斯塔特,德伦)
dAdd2ItemList=dAdd2ItemList+dArray(dRow,dColumn)+“|”
dQuoteCounter=-1
dStart=dx+2
如果结束
如果结束
如果结束
如果dQuoteCounter=0且dChar=“,”则
dEnd=dx
dLen=(dEnd-dStart)
dColumn=dColumn+1
如果dLen<1,则
dArray(卓尔,dColumn)=“
dAdd2ItemList=dAdd2ItemList+dArray(dRow,dColumn)+“|”
其他的
dArray(卓尔,D列)=中间(恐惧线,德斯塔特,德伦)
dAdd2ItemList=dAdd2ItemList+dArray(dRow,dColumn)+“|”
如果结束
dStart=dx+1
如果结束
如果dx=dLineLength,则
dEnd=dx
dLen=(dEnd-dStart)+1
dColumn=dColumn+1
如果dLen<1,则
dArray(卓尔,dColumn)=“
dAdd2ItemList=dAdd2ItemList+dArray(dRow,dColumn)
其他的
dArray(卓尔,D列)=中间(恐惧线,德斯塔特,德伦)
dAdd2ItemList=dAdd2ItemList+dArray(dRow,dColumn)
如果结束
dStart=dx+1
如果结束
如果dQuoteCounter=-1和dChar=“,”则dQuoteCounter=0
下一个(dx)
ListBox1.Items.Add(dAdd2ItemList)
REM卓尔=卓尔+1
环
端接头

末级

是,可以这样做。你试过什么?你被困在哪里了?我已经添加了代码,到目前为止手动解析CSV文件是个坏主意。使用TextFileParser