永发信息网

如何用vb修改csv文件的一个指定字段

答案:2  悬赏:0  手机版
解决时间 2021-03-03 00:28
需要用vb实现对一个CSV文件的分析,对每一行的数据进行判断,若符合一定条件则将其中的一个字段的内容修改为0.0,若不符合则不修改,然后判断下一行数据,直至文件结束。气温应该如何实现?我之前以textstream对象方式打开文件,其中有write 、writeline、writeblanklines 等方法写文件,但都无法满足我的只修改某一个字段的要求。盼高手指点。谢谢!

我没处理过文本文件,关键是不知如何在文件的指定位置写,以及用什么语句写,写入的字符如果比需要覆盖的字符少,那么多出的字符如何处理等等。
死神800,fso.opentextfile(rt0, 1)中的参数1表示文件以只读方式打开,此时不能写文件;若参数取8,表示文件以追加方式打开,只能在文件结尾追加写入。而我是要修改文件中的某些字段,这两种方法都无法实现。还有你用rt10存放整个修改过的文件内容,再将rt10写入,怎么写呢,貌视应该从文件的开头写入,可指针如何定位到开头呢?文件一什么方式打开才能这样写呢?原文件多出来的字符如何删掉呢?而且这种方法将整个文件重写,工作量有些大,因为我有上千个文件要依次修改,能不能只修改某一个字段呢?
最佳答案
可以呀。以的行方式来读文本就可以了。
你读一行然后分析一行,如果符合则那一行的内容由你指定。
这不就行了吗?
rt0 = "文件路径和名字"
Const ForReading = 1
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(rt0) = 0 Then Exit Function
Set rt1 = fso.opentextfile(rt0, 1)
Do While rt1.atendofstream > -1
rt100 = rt1.readline
'在这里添加你的分析,如果适合就把rt100改成你指定的
rt10 = rt10 & vbCrLf & rt100
Loop
'然后在这里把rt10写进去就好了
全部回答
写得有点粗糙,不好意思了 dim textline dim textstring dim splitstr as variant open app.path & "\123.csv" for input as #1 ' 打开文件。 do while not eof(1) ' 循环至文件尾。 line input #1, textline ' 读入一行数据并将其赋予某变量。 ' debug.print textline ' 在调试窗口中显示数据。 if textstring = "" then textstring = textline else textstring = textstring & "," & textline end if loop close #1 ' 关闭文件。 splitstr = split(textstring, ",")
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
煤矿管理方式方式比较先进的方法是什么?
咪咕音乐彩铃怎么取消
化妆棉的厚度还不一样么?
手机怎么用电脑格式化
富兰克林·罗斯福是美国历史上第一位利用“炉
都市布谷我想知道这个在什么地方
计算机二级考试忘记密码怎么打印准考证?
天鑫通讯地址有知道的么?有点事想过去
世界上所有的一切都在书里的意思。
cmcc4格信号只能接收到3格
齐齐哈尔双丰旅游有限公司甘南营业部地址在什
日剧逐渐衰落的原因是什么
2020年星级口算天天练四年级数学下册苏教版答
加多宝凉茶310m1属于酸性还是碱性呢?
刘家洼乡店头村初级小学我想知道这个在什么地
推荐资讯
|监控录像机连接笔记本电脑的线叫什么线
中国网通慧是不是传销组织?
求含有“狼”字的四字成语—四个
宇宙里一共有几个星球?
大富翁之封神榜怎么玩
店里生意不好,我该怎么办?
翰墨书院在什么地方啊,我要过去处理事情
qq空间宠物在那里设置问候语
用工商银行卡号和密码能查到取款地址吗?
旋流沉砂池和钟式沉砂池是一样的吗
水约占体重的60%-70%是人体细胞的主要成分之
小米账号密码忘记了,开不了机,怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?