Vb.net 在vb中编辑CSV
我从早期版本的软件中导出了CSV,并希望将其导入到新版本中,但我只希望CSV中的两列,并在我按列顺序单击windows窗体中的按钮1时显示出来。这可以做到吗?如何做到 如果您不理解,请留言,并将详细介绍 到目前为止,我已经有了这个,但它只显示了CSVVb.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
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