返回列表 发帖

回复 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

Dim objFSO, objFile, colLines
Dim objRegEx, objMatches, objMatch, aryMatches
Const ForReading   = 1
Const TristateTrue = -1
sFile = "a.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(sFile,1, false, -1)
colLines = objFile.ReadAll
objFile.Close
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Global = True
objRegEx.IgnoreCase = True
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})"
Set objMatches = objRegEx.Execute(colLines)
For Each objMatch in objMatches
        objMatch = Replace(objMatch, ".jpg','", " ")
        objMatch = "/Ref:abc /Rename:" & objMatch
        aryMatches = aryMatches & objMatch & vbCrLf
Next
Set strFile = objFSO.CreateTextFile("b.txt", True)
strFile.Write aryMatches
strFile.Close
Set objFSO   = Nothing
Set objRegEx = NothingCOPY

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 格式编码,用以下正则:

(\D*\.[a-z]*[0-9]*\.[a-z]*\.[a-z]+)[^a-zA-z]*(\w*:\/\/[^/]*[^.]*\.\w{3})COPY


可以匹配第一个和第二个,不过第三个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

返回列表