大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
给你一段VB.net读取csv文件的代码把。
专注于为中小企业提供成都做网站、网站建设、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业北关免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
Imports System.IO
Imports System.Collections.Generic
Module Module1
Public CSV数据 As List(Of List(Of String))
''' summary
''' 从指定路径的文件读取内容,并分析出其中每行含有分隔符的数据,存到CSV数据中。
''' para调用的时候使用CSV数据(5)(0)表示第6条记录的第1个数据/para
''' /summary
''' param name="文件路径"必需。一个[String]表达式。要读取的文件路径。/param
''' returns返回是否读取成功/returns
''' remarks/remarks
Public Function 读取(ByVal 文件路径 As String) As Boolean
Dim 文件读取器 As StreamReader = New StreamReader(文件路径)
Dim 语句 As String
Dim t成功 As Boolean = True
Dim 分隔符 As Char = ";"
CSV数据 = New List(Of List(Of String))
While Not 文件读取器.EndOfStream
Try
语句 = 文件读取器.ReadLine
'分析语句后判断类型
If 语句.Contains(分隔符) Then
Dim array = 语句.Split(分隔符)
If array IsNot Nothing Then
CSV数据.Add(array.ToList())
End If
End If
Catch ex As Exception
t成功 = False
End Try
End While
Return t成功
End Function
End Module
你上面的数据执行后,将会保存到一个List嵌套List的String组中。
自己转化为数字再进行操作把。
Dim 数字 = Convert.ToDecimal(CSV数据(5)(0))
你csv文件是用什么分割符的?
把csv文件当做文本文件处理
File.ReadAllLines 读取所有行,
然后循环每行,按照分隔符split后就是每一列
csv文件可以当做文本文件来处理!
主要处理代码如下:
Dim t As String, b() As stirng, s(10) As String, cj(10) As Single
t = "" '这里是你读取的CSV文件内容
b() = Split(t, vbCrLf)
For j = 0 To 9
s(j) = b(j) '这个就是每一行的数据了
c() = Split(s(j), ",")
cj(j) = Val(c(1)) '这个就是每一行的成绩数据了
Next
'然后进行排序和显示处理
用一个streamreader和streamwriter即可
Using sr2 As New StreamWriter("2.csv", False, Text.Encoding.Default) '要写入的文件
Using sr1 As New StreamReader("1.csv", Text.Encoding.Default) '要读取的文件
While Not sr1.EndOfStream 'EndOfStream=True表示读取结束了
'读取
Dim lineread As String = "" '等下要读的行
Dim linewrite As String = "" '等下要写入的行
Dim data As String() '每个数据的数组
lineread = sr1.ReadLine '读一行并把流的位置往后调一行
'你现在可以用If判断这一行要不要删除。如果要的话,用Else直接跳过下面的语句即可。
data = lineread.Split(",".ToCharArray, StringSplitOptions.RemoveEmptyEntries) '读取一行,用逗号分隔后存在数组里
'下面对读取到的数据进行处理,你可以自己处理它
For Each item As String In data
linewrite = item "," 'csv是以逗号分隔的,我们写进去时也要记得加逗号
Next
'写入
If linewrite.EndsWith(",") Then '去掉行最后一个逗号。
'如果之前读到一个空行,这里就不会执行。你想想为什么
sr2.WriteLine(linewrite.Remove(linewrite.Length - 1, 1))
End If
'如果你之前用If判断了行要不要删除,那么End If就应该加在这里。
End While
sr1.Close()
End Using
sr2.Flush()
sr2.Close()
End Using
你是怎么读写的呢?下面是简单的读写
Dim str As String = (My.Computer.FileSystem.ReadAllText("C:\QD51-R24_A.csv")) '读
My.Computer.FileSystem.WriteAllText("C:\1.csv", str, True) '写
Public Function GetTxtFile(ByVal TxtFn As String) As String()
Dim sr As IO.StreamReader
Dim tmpstr As String
Dim R() As String
Dim Rn As Long
sr = IO.File.OpenText(TxtFn)
tmpstr = sr.ReadLine()
Rn = 0
While Not tmpstr Is Nothing
ReDim Preserve R(Rn)
R(Rn) = tmpstr
tmpstr = sr.ReadLine()
Rn += 1
End While
sr.Close()
Return R
End Function
这是读取一个的,然后你取出多个文件循环调用就可以了