[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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")双引号内逗号并不进行替换,该如何实现啊???

多谢!!!

  1. Dim strFile: strFile = "urfile"
  2. Dim FSO:     Set FSO = CreateObject("Scripting.FileSystemObject")
  3. Dim objFile: Set objFile = FSO.OpenTextFile(strFile)
  4. Dim strContent: strContent = objFile.Readall
  5. objFile.Close
  6. strContent = RegExp(strContent, ",", chr(124))
  7. strContent = RegExp(strContent, "([\d])[|]([\d])", "$1" & chr(44) & "$2")
  8. Function RegExp(str1, patrn, replStr)
  9.   Dim regEx  
  10.   Set regEx = New RegExp
  11.   regEx.Pattern = patrn
  12.   regEx.IgnoreCase = True
  13.   regEx.Global = True
  14.   RegExp = regEx.Replace(str1, replStr)
  15. End Function
  16. Dim objTextFile: Set objTextFile = FSO.CreateTextFile("op.txt")
  17. objTextFile.Write strContent
  18. Wscript.Quit
复制代码

[ 本帖最后由 asnahu 于 2011-1-28 15:55 编辑 ]

TOP

原帖由 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
...


能简单解释一下吗?看不太懂,谢谢!!

TOP

打开文件全部读取并赋予变量strContent,然后对strContent进行正则替换:将全部“,”替换成“|”,将数字之间的“|”替换回来。

TOP

能不能把双引号之间的“|”替换回来,而不是数字之间的啊!!

TOP

  1. strContent = RegExp(strContent, "([\d])[|]([\d])", "$1" & chr(44) & "$2")
复制代码

改为:
  1. strContent = RegExp(strContent, chr(34) & "(.*)[|](.*)" & chr(34) , chr(34) & "$1,$2" & chr(34))
复制代码

TOP

原帖由 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))


再请教一下:如果双引号之间有多个"|"这样就没法转换回来了。该如何处理啊??谢谢

TOP

CSV
用EXCEL打开。。。然后复制后保存=。=
Tab字符随便换啦。

TOP

原帖由 slore 于 2011-1-30 12:43 发表
CSV
用EXCEL打开。。。然后复制后保存=。=
Tab字符随便换啦。

这个是每天进行的操作,不可能都手工操作!!

TOP

回复 7楼 的帖子

能否把所有问题在顶楼一次性描述清楚?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 kangta122 于 2011-1-30 13:02 发表 这个是每天进行的操作,不可能都手工操作!!


VBS可以用excel对象。。。不过你这个要求用的话的确有点大材小用了。。。

TOP

返回列表