字符串数组存储成文件

atm008 2010-02-26 01:27:47
有一个字符串数组 s
s(0) = "0x23"
s(1) = "0x00"
s(2) = "0x1d"
s(3) = "0xf0"
s(4) = "0x23"
....

怎么把这个数组以字节流的形式存储成文件?不是直接以字符串形式存储,而是转化成字节流后存储成二进制文件。
...全文
98 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mocom 2010-02-27
  • 打赏
  • 举报
回复

Dim strm
Set strm = CreateObject("ADODB.Stream")
strm.type = 2
strm.charset = "unicode"
strm.open
strm.writeText ChrB(&H23)
strm.writeText ChrB(&H00)
strm.writeText ChrB(&H1d)
strm.writeText ChrB(&Hf0)
strm.writeText ChrB(&H23)
strm.position = 0
strm.type = 1
strm.position = 2

Dim tmp
Set tmp = CreateObject("ADODB.Stream")
tmp.type = 1
tmp.open
strm.copyTo tmp
tmp.saveToFile "test.txt", 2
tmp.close
Set tmp = Nothing

strm.close
Set strm = Nothing
atm008 2010-02-27
  • 打赏
  • 举报
回复
引用 3 楼 dogfish 的回复:
引用 2 楼 atm008 的回复:
这个方法似乎不能加入0x00,因为是用字符串连接的方式。
如果用ADODB.Stream的话是不是可以一个字节一个字节的Write呢?
是。


应该怎么写?
Dogfish 2010-02-26
  • 打赏
  • 举报
回复
引用 2 楼 atm008 的回复:
这个方法似乎不能加入0x00,因为是用字符串连接的方式。
如果用ADODB.Stream的话是不是可以一个字节一个字节的Write呢?

是。
atm008 2010-02-26
  • 打赏
  • 举报
回复
这个方法似乎不能加入0x00,因为是用字符串连接的方式。
如果用ADODB.Stream的话是不是可以一个字节一个字节的Write呢?
北京不不 2010-02-26
  • 打赏
  • 举报
回复
首先数组字符化~
然后再转成二进制~
'字符串转换成二进制
function StrToBin(str)
dim curChr, curAsc, low, high
dim i
for i=1 To Len(str)
curChr = Mid(str, i, 1)
curAsc = Asc(curChr)
'asc对中文字符求出来的值可能为负数,
'加上65536就可求出它的无符号数值
'-1在机器内是用补码表示的0xffff,
'其无符号值为65535,65535=-1+65536
'其他负数依次类推。
if curAsc < 0 then
curAsc = curAsc + 65535
end if
'对中文的处理:把双字节低位和高位分开
if curAsc > 255 then
low = Left(Hex(Asc(curChr)), 2)
high = Right(Hex(Asc(curChr)), 2)
StrToBin = StrToBin & ChrB("&H" & low) & ChrB("&H" & high)
else
StrToBin = StrToBin & ChrB(AscB(CurChr))
end If
next
end function

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧