标题:请教-----VB 对 CSV 格式文件操作----小弟刚入门没多久
只看楼主
shi521min
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-10-8
结帖率:80%
已结贴  问题点数:20 回复次数:6 
请教-----VB 对 CSV 格式文件操作----小弟刚入门没多久
VB将测量结束后的数据存入CSV格式文件里,程序会每天生成一个当天文件夹,然后每天测得的CSV文件存储到当天的文件夹里。
以下为代码。

麻烦看一下怎么更改或者用什么思路去修改。先谢谢了

Const FilePath = "D:\123.csv"   

Dim iCount As Long

Private Sub Command2_Click()
Timer1 = True
End Sub
Private Sub Form_Initialize()
    iCount = 0
End Sub

Private Sub Timer1_Timer()

Dim i As Integer, FileNum As Integer
Dim TempString As String

Dim fileName As String

If Dir("D:\本地数据", vbDirectory) = "" Then   
MkDir ("D:\本地数据")  
End If

fname = "D:\本地数据\" & Year(Now) & "年" & Month(Now) & "月" & Day(Now) & "日"
If Dir(fname, vbDirectory) = "" Then   
MkDir (fname)
End If
fileName = fname
    TempString = ""

    For i = 1 To 7         
        If i = 1 Then
            TempString = Trim(Text1(i).Text)
        Else
            TempString = TempString & "," & Trim(Text1(i).Text)
        End If
     
    Next i
     
    FileNum = FreeFile


    If iCount = 0 Then
   
        Open FilePath For Output As #FileNum
        
        Print #FileNum, " 序号" & "," & "日期" & "," & "时间" & "," & "平面度" & "," & "单位"
        Print #FileNum, (iCount + 1) & "," & TempString
        Close #FileNum
    Else
        Open FilePath For Append As #FileNum
        Print #FileNum, (iCount + 1) & "," & TempString
        Close #FileNum
    End If
  
    iCount = iCount + 1
   
End Sub
搜索更多相关主题的帖子: 文件夹 测量 
2014-08-21 09:16
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:10 
csv是一种纯文本文件  应该好操作吧

DO IT YOURSELF !
2014-08-21 09:17
shi521min
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-10-8
得分:0 
能给个思路吗版主!!
2014-08-21 15:01
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:10 
你这个是 保存文件。这样 保存也没多大问题。
静态看了一下代码,没什么问题。

你是要干什么?修改某一行?

修改的思路是:
一个位置移动的指针。
文件用文本文件 读取方式打开,一次读取一行。
指针=4
先读第一行,丢弃,然后再读 4-1 行,去丢弃。
再读指定行,读到数据后。
使用 split(数据,"," ) 分解成一个一维数组,这个函数会重定义数组大小。
下标0 对应你的序号。
下标1-7 对应你的 7项。
保存时:打开原来的文件 ,
读第一行(标题),写入新的临时文件,然后读 (4-1),均写入新的临时文件。
把刚修改的内容写入(第4行数据,文件的第5行),然后再读原来的文件,
读第4行,丢弃(因为已写入新的),再读后面的,读一行,就写一行到新的临时文件 。
写完后,删除老文件 ,把新文件改名为 老文件的文件名。

删除的处理:假设指针是4
读第一行(标题),写入新的临时文件,然后读 (4-1),均写入新的临时文件。
读第4行,丢弃(要删除的),再读后面的,读一行,修改前面的序号,然后写一行到新的临时文件 。
写完后,删除老文件 ,把新文件改名为 老文件的文件名。

-------------------------------------
        Print #FileNum, " 序号" ; "," ; "日期" ; "," ; "时间" ; "," ; "平面度" ; "," ; "单位"
'print 输出时,连续输出,每个内容之间用 分号分隔
'        Print #FileNum, (iCount + 1) & "," & TempString
 Print #FileNum, (iCount + 1);",";                         '写入序号
for i=1 to 7                                               '循环写入,不要先拼起来
    Print #FileNum, Trim(Text1(i).Text);",";               '写入每一个值
next i
    Print #FileNum,                                        '写完后换行
---------这样写,可以节省一点内存----------

授人于鱼,不如授人于渔
早已停用QQ了
2014-08-21 17:48
shi521min
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-10-8
得分:0 
还有一点点疑问,怎么把这个CSV文件保存到我指定的文件夹,因为我每天的数据都要保存在当天的文件夹里?能给个思路么?
2014-08-21 20:05
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
fname = "D:\本地数据\" & Year(Now) & "年" & Month(Now) & "月" & Day(Now) & "日"

你这里就是带路径生成的文件名。
你修改这里就是了。
如果你的指定文件夹,由选项指定,那么相应组合好,只要符合标准的 路径就可以了。

授人于鱼,不如授人于渔
早已停用QQ了
2014-08-21 22:21
shi521min
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-10-8
得分:0 
谢谢版主,问题已经解决!!!
2014-08-22 08:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-435211-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.132738 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved