中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 怎样让VBS写入大文件 上一主题 | 下一主题
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『楼 主』:  怎样让VBS写入大文件

sFile = "加密后的文件.exe"
str= (省略1.6W行)
Function MakeFile()

    if Len(Trim(sFile)) = 0 Then Wscript.Quit
Set oStream = Createobject("Adodb.Stream")
Set oXML = Createobject("Microsoft.XMLDOM")
Set oElement = oXML.CreateElement("oTmpElement")
    oElement.DataType = "bin.hex"
    oElement.NodeTypedValue = str
With oStream
    .Type = 1
    .Mode = 3
    .Open
    .Write oElement.NodeTypedValue
    .SaveToFile sFile
End With
    oStream.Close
Set oStream = Nothing
Set oXML = Nothing
Set oElement = Nothing


End Function



就是因为str变量过大.在转换的时候一下子就把我512内存全部吃完了.
我想问问。有没有办法让他分次从文件读取str的内容然后写入(第一次以后是附加)到"加密后的文件.exe"
鄙人基本不懂VBS..

2008-1-6 17:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 2 楼』:  

我在想是不是可以用
TextStream一次读取指定大小的文件.
然后用
Adodb.Stream
写入.

或者分段。让Adodb.Stream分段追加写入
不知道是不是个办法.

[ Last edited by knoppix7 on 2008-1-6 at 06:34 PM ]

2008-1-6 18:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 3 楼』:  

我也不是很懂TextStream

2008-1-6 21:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kevin4000
新手上路





积分 1
发帖 1
注册 2008-12-11
状态 离线
『第 4 楼』:  

这个问题还真没遇到过哦

2008-12-16 10:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

objStream.Position = objStream.Size

然后再write


或者write多份……copy /b合并……

感觉没有必要……吧。

bin转成str浪费太多空间



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-12-16 13:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: