需要用vb实现对一个CSV文件的分析,对每一行的数据进行判断,若符合一定条件则将其中的一个字段的内容修改为0.0,若不符合则不修改,然后判断下一行数据,直至文件结束。气温应该如何实现?我之前以textstream对象方式打开文件,其中有write 、writeline、writeblanklines 等方法写文件,但都无法满足我的只修改某一个字段的要求。盼高手指点。谢谢!
我没处理过文本文件,关键是不知如何在文件的指定位置写,以及用什么语句写,写入的字符如果比需要覆盖的字符少,那么多出的字符如何处理等等。
死神800,fso.opentextfile(rt0, 1)中的参数1表示文件以只读方式打开,此时不能写文件;若参数取8,表示文件以追加方式打开,只能在文件结尾追加写入。而我是要修改文件中的某些字段,这两种方法都无法实现。还有你用rt10存放整个修改过的文件内容,再将rt10写入,怎么写呢,貌视应该从文件的开头写入,可指针如何定位到开头呢?文件一什么方式打开才能这样写呢?原文件多出来的字符如何删掉呢?而且这种方法将整个文件重写,工作量有些大,因为我有上千个文件要依次修改,能不能只修改某一个字段呢?
如何用vb修改csv文件的一个指定字段
答案:2 悬赏:0 手机版
解决时间 2021-03-03 00:28
- 提问者网友:做自己de王妃
- 2021-03-02 11:31
最佳答案
- 五星知识达人网友:零点过十分
- 2021-03-02 11:47
可以呀。以的行方式来读文本就可以了。
你读一行然后分析一行,如果符合则那一行的内容由你指定。
这不就行了吗?
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写进去就好了
你读一行然后分析一行,如果符合则那一行的内容由你指定。
这不就行了吗?
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写进去就好了
全部回答
- 1楼网友:英雄的欲望
- 2021-03-02 12:10
写得有点粗糙,不好意思了
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, ",")
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯