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

回复 29楼 的帖子

OpenTextFile 方法的语法是
OpenTextFile(filename[, iomode[, create[, format]]])

iomode 参数可以是下列设置中的任一种:

常数描述
ForReading1以只读方式打开文件。不能写这个文件。
ForWriting2以写方式打开文件
ForAppending8打开文件并从文件末尾开始写。

format 参数可以是下列设置中的任一种:
常数 描述
TristateTrue -1 以 Unicode 格式打开文件。
TristateFalse 0 以 ASCII 格式打开文件。
TristateUseDefault -2 使用系统默认值打开文件。


LZ的文本是Unicode格式。
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

回复 31楼 的帖子

不知何故,用unicode的方式打开读取文本2的内容只得到了一个问号,不解中...望斑竹测试一下。

TOP

对27楼的文本,你确认是用Unicode 格式打开的吗?
fso.OpenTextFile("a.txt", 1, false, -1)
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

谢谢斑竹,参数没用上,现在可以了。

TOP

原帖由 asnahu 于 2009-10-14 18:44 发表
还是正则来得快点,VBS:

Dim objFSO, objFile, colLines
Dim objRegEx, objMatches, objMatch, aryMatches

Const ForReading   = 1
Const TristateTrue = -1

sFile = "a.txt"

Set objFSO = CreateObj ...

大哥
"復仇之戰"這些字不能當成變量,那是不固定的@@

另外可以請您幫我處理完字串後輸出文本嗎,像是b.txt
謝謝

[ 本帖最后由 leo1984 于 2009-10-14 21:50 编辑 ]

TOP

原帖由 zqz0012005 于 2009-10-14 20:50 发表
对27楼的文本,你确认是用Unicode 格式打开的吗?
fso.OpenTextFile("a.txt", 1, false, -1)


我傳的文本是big5繁體中文碼

我另傳一個utf-8的碼給您看看

TOP

  1. Dim objFSO, objFile, colLines
  2. Dim objRegEx, objMatches, objMatch, aryMatches
  3. Const ForReading   = 1
  4. Const TristateTrue = -1
  5. sFile = "a.txt"
  6. Set objFSO = CreateObject("Scripting.FileSystemObject")
  7. Set objFile = objFSO.OpenTextFile(sFile,1, false, -1)
  8. colLines = objFile.ReadAll
  9. objFile.Close
  10. Set objRegEx = CreateObject("VBScript.RegExp")
  11. objRegEx.Global = True
  12. objRegEx.IgnoreCase = True
  13. objRegEx.Pattern = "(\D*\.[a-z]*[0-9]*\.[a-z]*\.[a-z]+)[^a-zA-z]*(\w+:\/\/\d\.\w+\.\w+\.\w+\/\d\/\d\/\w\/\d\/\w*\d*\/\d*\/\w\/\d*\.\w{3})"
  14. Set objMatches = objRegEx.Execute(colLines)
  15. For Each objMatch in objMatches
  16.         objMatch = Replace(objMatch, ".jpg','", " ")
  17.         objMatch = "/Ref:abc /Rename:" & objMatch
  18.         aryMatches = aryMatches & objMatch & vbCrLf
  19. Next
  20. Set strFile = objFSO.CreateTextFile("b.txt", True)
  21. strFile.Write aryMatches
  22. strFile.Close
  23. Set objFSO   = Nothing
  24. Set objRegEx = Nothing
复制代码

TOP

原帖由 asnahu 于 2009-10-14 22:08 发表
Dim objFSO, objFile, colLines
Dim objRegEx, objMatches, objMatch, aryMatches

Const ForReading   = 1
Const TristateTrue = -1

sFile = "a.txt"

Set objFSO = CreateObject("Scripting.FileSystemOb ...

大哥您有測試我的文本嗎@@

我測試結果是沒有輸出文本b.txt

所以我也不知道哪裡有問題

可以請您測試一下我的文本可否成功

感謝><

TOP

25楼用sed不是已经解决了吗,难道还不行?
技术问题请到论坛发帖求助!

TOP

回复 38楼 的帖子

第一个是普通的ansi编码,第二是UTF-8 LITTLE ENDIAN编码,第三个是UTF-8 无 BOM 格式编码,用以下正则:

  1. (\D*\.[a-z]*[0-9]*\.[a-z]*\.[a-z]+)[^a-zA-z]*(\w*:\/\/[^/]*[^.]*\.\w{3})
复制代码


可以匹配第一个和第二个,不过第三个VBS打开是乱码。请你先测试。

TOP

回复 39楼 的帖子

因为从27楼开始,需求又变了,囧ing
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表