标题: VBS怎样把逗号替换为竖线? [打印本页]
作者: kangta122 时间: 2011-1-28 14:34 标题: VBS怎样把逗号替换为竖线?
1,lv-ffx,"2,537",UDP,218.2
1,lv-ffx,"2,537",UDP,218.2
1,lv-ffx,"2,537",UDP,218.2
...
有这么一个.csv文件
怎样把","替换成"|",但("2,537")双引号内逗号并不进行替换,该如何实现啊???
多谢!!!
作者: asnahu 时间: 2011-1-28 15:47
- Dim strFile: strFile = "urfile"
- Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
- Dim objFile: Set objFile = FSO.OpenTextFile(strFile)
- Dim strContent: strContent = objFile.Readall
- objFile.Close
-
- strContent = RegExp(strContent, ",", chr(124))
- strContent = RegExp(strContent, "([\d])[|]([\d])", "$1" & chr(44) & "$2")
-
- Function RegExp(str1, patrn, replStr)
- Dim regEx
- Set regEx = New RegExp
- regEx.Pattern = patrn
- regEx.IgnoreCase = True
- regEx.Global = True
- RegExp = regEx.Replace(str1, replStr)
- End Function
-
- Dim objTextFile: Set objTextFile = FSO.CreateTextFile("op.txt")
- objTextFile.Write strContent
- Wscript.Quit
复制代码
[ 本帖最后由 asnahu 于 2011-1-28 15:55 编辑 ]
作者: kangta122 时间: 2011-1-28 16:04
原帖由 asnahu 于 2011-1-28 15:47 发表
Dim strFile: strFile = "urfile"
Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim objFile: Set objFile = FSO.OpenTextFile(strFile)
Dim strContent: strContent = objFile.Readall
...
能简单解释一下吗?看不太懂,谢谢!!
作者: asnahu 时间: 2011-1-28 16:09
打开文件全部读取并赋予变量strContent,然后对strContent进行正则替换:将全部“,”替换成“|”,将数字之间的“|”替换回来。
作者: kangta122 时间: 2011-1-28 16:13
能不能把双引号之间的“|”替换回来,而不是数字之间的啊!!
作者: asnahu 时间: 2011-1-28 16:45
- strContent = RegExp(strContent, "([\d])[|]([\d])", "$1" & chr(44) & "$2")
复制代码
改为:
- strContent = RegExp(strContent, chr(34) & "(.*)[|](.*)" & chr(34) , chr(34) & "$1,$2" & chr(34))
复制代码
作者: kangta122 时间: 2011-1-30 11:06
原帖由 asnahu 于 2011-1-28 16:45 发表
strContent = RegExp(strContent, "([\d])[|]([\d])", "$1" & chr(44) & "$2")
改为:
strContent = RegExp(strContent, chr(34) & "(.*)[|](.*)" & chr(34) , chr(34) & "$1,$2" & chr(34))
再请教一下:如果双引号之间有多个"|"这样就没法转换回来了。该如何处理啊??谢谢
作者: slore 时间: 2011-1-30 12:43
CSV
用EXCEL打开。。。然后复制后保存=。=
Tab字符随便换啦。
作者: kangta122 时间: 2011-1-30 13:02
原帖由 slore 于 2011-1-30 12:43 发表
CSV
用EXCEL打开。。。然后复制后保存=。=
Tab字符随便换啦。
这个是每天进行的操作,不可能都手工操作!!
作者: Batcher 时间: 2011-1-30 15:54 标题: 回复 7楼 的帖子
能否把所有问题在顶楼一次性描述清楚?
作者: slore 时间: 2011-1-31 21:15
原帖由 kangta122 于 2011-1-30 13:02 发表 这个是每天进行的操作,不可能都手工操作!!
VBS可以用excel对象。。。不过你这个要求用的话的确有点大材小用了。。。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |