faysky2请进!!

yoyo9250 2006-02-21 03:09:43
我刚才读取的。CSV文件出了点问题,是 这样的:它的原文件中一共有35列
第一列 第二列.........第35列
NO NAME IL
1001 ABC XXXX
1002 VBN XX
strRlt(0)=NO strRlt(34)=IL1001 strRlt(35)=ABC 为什么下一行的NO号会跟上一行的最后一列一起读了出来呢,是文件有问题吗,还是别的原因?
...全文
72 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZOU_SEAFARER 2006-02-21
  • 打赏
  • 举报
回复
不用到2维数组,使用line input 读出来一条处理一条数据
Private Sub Command1_Click()
Dim str As String
Dim Arrstr() As String
Dim i As Integer

Open "D:\WINAPIxx.csv" For Input As #1
Do While Not EOF(1)
Line Input #1, str
Arrstr() = Split(str, ",")
For i = 0 To UBound(Arrstr)
Debug.Print Arrstr(i) '再这个地方把你需要的数据提出来即可!
Next
str = vbnullstring
Loop

Close #1

End Sub
faysky2 2006-02-21
  • 打赏
  • 举报
回复
读到二维数组:

Private Sub Command1_Click()
Dim strTmp As String, fPath As String, rowCounts As Long, strRlt() As String, arrTmp() As String, i As Long, j As Long
fPath = App.Path & "\test.csv"

rowCounts = CreateObject("scripting.filesystemobject").opentextfile(fPath, 8).Line '首先获得行数
ReDim strRlt(rowCounts - 1, 34) '重新定义二维数组的大小

i = 0
Open fPath For Input As #1
While Not EOF(1)
Line Input #1, strTmp '一行一行地读数据
arrTmp = Split(strTmp, ",")
For j = 0 To UBound(arrTmp)
strRlt(i, j) = arrTmp(j) '给二维数组赋值
Next
i = i + 1
Wend
Close #1

For i = 0 To rowCounts - 1
strTmp = ""
For j = 0 To 34
strTmp = strTmp & "," & strRlt(i, j) '打印结果
Next
Debug.Print Mid(strTmp, 2)
Next
End Sub
ZOU_SEAFARER 2006-02-21
  • 打赏
  • 举报
回复
要是2进制文件的话,你要去掉csv文件头!从数据开始的地方读数据,但是里面的数据字段必须是固定的!!!否则无法实现!!
yoyo9250 2006-02-21
  • 打赏
  • 举报
回复
如果我不用数据库,就用直接读的那个,该怎样用二维数组去解决这个问题呢
faysky2 2006-02-21
  • 打赏
  • 举报
回复
其实也可以把csv当作数据库来操作:

'用ado怎样实现
'工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)
Private Sub Form_Load()
cn.CursorLocation = adUseClient
cn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" & App.Path & ":\;Extensions=asc,csv,tab,txt;"
rs.Open "select * from Test.csv", cn, adOpenDynamic, adLockOptimistic
While Not rs.EOF
For i = 0 To rs.Fields.Count - 1
Debug.Print rs(i) & ""
Next
Wend
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
End Sub
faysky2 2006-02-21
  • 打赏
  • 举报
回复
不是文件的问题,是因为数据是读到一维数组里了

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧