找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18015|回复: 10

VBS怎样把逗号替换为竖线?

[复制链接]
发表于 2011-1-28 14:34:04 | 显示全部楼层 |阅读模式
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")双引号内逗号并不进行替换,该如何实现啊???

多谢!!!
发表于 2011-1-28 15:47:16 | 显示全部楼层
  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 编辑 ]
 楼主| 发表于 2011-1-28 16:04:46 | 显示全部楼层
原帖由 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
...


能简单解释一下吗?看不太懂,谢谢!!
发表于 2011-1-28 16:09:05 | 显示全部楼层
打开文件全部读取并赋予变量strContent,然后对strContent进行正则替换:将全部“,”替换成“|”,将数字之间的“|”替换回来。
 楼主| 发表于 2011-1-28 16:13:31 | 显示全部楼层
能不能把双引号之间的“|”替换回来,而不是数字之间的啊!!
发表于 2011-1-28 16:45:04 | 显示全部楼层
  1. strContent = RegExp(strContent, "([\d])[|]([\d])", "$1" & chr(44) & "$2")
复制代码

改为:
  1. strContent = RegExp(strContent, chr(34) & "(.*)[|](.*)" & chr(34) , chr(34) & "$1,$2" & chr(34))
复制代码
 楼主| 发表于 2011-1-30 11:06:28 | 显示全部楼层
原帖由 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))


再请教一下:如果双引号之间有多个"|"这样就没法转换回来了。该如何处理啊??谢谢
发表于 2011-1-30 12:43:28 | 显示全部楼层
CSV
用EXCEL打开。。。然后复制后保存=。=
Tab字符随便换啦。
 楼主| 发表于 2011-1-30 13:02:52 | 显示全部楼层
原帖由 slore 于 2011-1-30 12:43 发表
CSV
用EXCEL打开。。。然后复制后保存=。=
Tab字符随便换啦。

这个是每天进行的操作,不可能都手工操作!!
发表于 2011-1-30 15:54:59 | 显示全部楼层

回复 7楼 的帖子

能否把所有问题在顶楼一次性描述清楚?
发表于 2011-1-31 21:15:43 | 显示全部楼层
原帖由 kangta122 于 2011-1-30 13:02 发表 这个是每天进行的操作,不可能都手工操作!!


VBS可以用excel对象。。。不过你这个要求用的话的确有点大材小用了。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:29 , Processed in 0.017967 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表