VB中,有一个控件可以将内容二进制保存到数据库,如果在保存时修改? 100
dimbufferasvariantxTable.saveToBufferbuffer‘表格保存为二进制流‘这个buffer会保存到数据库'以后再xTable.Openf...
dim buffer as variant
xTable.saveToBuffer buffer ‘表格保存为二进制流
‘这个 buffer 会保存到数据库
'以后再 xTable.OpenfromBuffer buffer 打开
如何对这个 buffer 进行修改,比如添加点东西后保存,下次读出来再修改回去,坐等。
目的是避免别人通过读数据库打开存储的东西。
其实主要问题是不知道怎么操作VB里的二进制变量。 展开
xTable.saveToBuffer buffer ‘表格保存为二进制流
‘这个 buffer 会保存到数据库
'以后再 xTable.OpenfromBuffer buffer 打开
如何对这个 buffer 进行修改,比如添加点东西后保存,下次读出来再修改回去,坐等。
目的是避免别人通过读数据库打开存储的东西。
其实主要问题是不知道怎么操作VB里的二进制变量。 展开
1个回答
展开全部
先说保存,将你的二进制文件先加工成你要存的内容,其实也就是写二进制文件的操作了,比如说你在第几个字节起,开始插入乱码,加入你的自定义内容,这些内容固定就行了,有几个字节要记清楚,相当于是把你的二进制文件分为两部分,在中间加入你要加的内容,
再说读取
既然是以二进制流存到表中的,读出来的时候,就for binary输出到二进制文件,输出时使用二进制方式,输出文件分成三段,第一段就是开始到你插入内容的那个字节结尾,第二段就是你加的内容的字节数,第三段是你插入内容的最后一个字节末尾开始到文件结尾,然后将你添加的字节也就是第二段去掉,再把一三两段合成一个文件
再说读取
既然是以二进制流存到表中的,读出来的时候,就for binary输出到二进制文件,输出时使用二进制方式,输出文件分成三段,第一段就是开始到你插入内容的那个字节结尾,第二段就是你加的内容的字节数,第三段是你插入内容的最后一个字节末尾开始到文件结尾,然后将你添加的字节也就是第二段去掉,再把一三两段合成一个文件
追问
谢谢用心的回答,原理都清楚。做.net的,对vb流不熟悉,能给一两行代码就好了。
追答
好吧,分两部分给你说,
假设你要将C盘根目录一个123.mp3文件加工后存入数据库
第一步,文件分割与
dim strfilename as string,file1 as string,file2 as string
dim aryfile() as byte
strfilename="c:\123.mp3"
file1="c:\123_1.mp3"
file2="c:\123_2.mp3"'这两个就是分割后要存的文件
open strfilename for binary as #1'二进制方式读文件
open file1 for binary as #2'二进制方式读文件
open file2 for binary as #3'二进制方式读文件
redim aryfile(5-1)'这里的5就是你要分割的字节数,也就是读取文件到这里时,输出一个文件
get #1,1, aryfile
put #2,,aryfile'输出到文件file1
close #2
redim aryfile(lof(1)-5-1)
get #1,5+1,aryfile
put #3,,aryfile'输出到file2
close #3
'这个就得到了两个分割开的文件
第二步,合成文件
dim file1 as string,file2 as string,file3 as string,cfile as string
dim aryfile() as byte
file1.....'这三个路径我就不写了,file3即是你要加入的内容了,cfile则是要合成输出的文件
open file1 for binary as #1
…………#2
.....#3'合成的那个文件号
redim aryfile(lof(1)-1)
get #1,,aryfile
put #3,,aryfile
close #1
redim aryfile(lof(2)-1)
get #2,,aryfile
put #3,,aryrile
close #2
close #3
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询