Board logo

标题: [问题求助] 提取文本中的电话号码的VBS代码为何在有些电脑上出错? [打印本页]

作者: mick00034    时间: 2014-2-23 19:17     标题: 提取文本中的电话号码的VBS代码为何在有些电脑上出错?

本帖最后由 pcl_test 于 2016-11-16 19:06 编辑

保留电话代码是对的,在本人电脑没问题,到朋友那里,2.txt却是空白结果,他那里两台电脑都不行,请高人指点一下,什么原因?
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. txt = fso.OpenTextFile("1.txt",1,false,-1).ReadAll
  3. Set re = New RegExp
  4. re.Pattern = "1\d{10}"
  5. re.IgnoreCase = True
  6. re.Global = True
  7. For Each m in re.Execute(txt)
  8.     s = s & m & vbCrLf
  9. Next
  10. fso.OpenTextFile("2.txt",2,true).Write s
复制代码

作者: Batcher    时间: 2014-2-23 20:01

1.txt的内容是什么?我想测试一下
能否把你的1.txt压缩之后传上来看看
作者: mick00034    时间: 2014-2-23 22:59

本帖最后由 mick00034 于 2014-2-23 23:09 编辑

回复 2# Batcher

在俺的电脑上行,没问题,在导出的2.txt里显示所有号码。别人的几台电脑上不行,在导出的2.txt里是空白。是否对方的系统缺什么东西?测试的都是xp

附件在下面地址3楼,不重复上传了,
如果版主可以提供批处理代码就,感激不尽了,谢谢您。

http://www.bathome.net/viewthread.php?tid=28730&highlight=
作者: DAIC    时间: 2014-2-24 09:03

在你朋友的电脑上用记事本打开1.txt
文件
另存为
选择ANSI编码
保存

再执行代码试试
作者: apang    时间: 2014-2-24 21:35

xp 和 win7 测试没有发现楼主所说的问题
链接帖子的附件1.txt是unicode编码,代码也是针对unicode文本的,楼主自行检查下
作者: mick00034    时间: 2014-2-26 09:46

回复 5# apang
在我的电脑没问题,不需要把文件另存。
在朋友的电脑上测试,每次必须先把文件另存unicode文本,才有效。挺麻烦,不过知道原因了,是不是他的系统问题呀?
作者: mick00034    时间: 2014-2-26 10:13

回复 6# mick00034

网上找了一下方法:


让记事本默认以Unicode或UTF-8编码保存避免ANSI乱码的方法技巧
1. 打开记事本新建一个空白的文本文档,不输入任何文字,然后保存此文档,在“另存为”对话框中将编码由默认的 ANSI 修改为 Unicode 或 UTF-8,接着为文件取名,在此假设将新文档命名为 UNICODE.TXT。

2. 将 UNICODE.TXT 复制至隐含的系统文件夹 C:\Windows\ShellNew。

3. 打开注册表编辑器定位至: HKEY_CLASSES_ROOT\.txt\ShellNew,新建名为 FileName 的字符串值,将此字符串值设置为 C:\Windows\ShellNew\UNICODE.TXT。

上述做法的目的是将 .TXT 文本文件的“新建”模板 ShellNew 设置为我们自定义的以 Unicode 编码保存的空白文本文件。这样,如果我们再使用资源管理器右键菜单中的“新建”-“文本文档”建立新文本文档,Windows 就会自动以 C:\Windows\ShellNew\UNICODE.TXT 做为模板来新建文本文档,文档的默认编码就变为 Unicode 了。

不过,此方法只适用于以“新建”右键菜单方式建立新文本文档。假如我们首先通过开始菜单启动记事本,然后再新建文本文档,C:\Windows\ShellNew\UNICODE.TXT 模板便不会被使用,新建的文本文档依然还将使用默认的 ANSI 编码。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2