注册 登录
编程论坛 VB6论坛

VB6.0能把所有文件类型都转为二进制文件么?

小刀神 发布于 2018-09-21 14:21, 2671 次点击
VB6.0能把所有文件类型都转为二进制文件么?
比如,把一个视频或图片文件转为二进制,然后输出为一个二进制文件,然后再将此二进制文件恢复到原来的原文件使用?
如果可以,假若两个或两个以上的不同类型文件可以输出为同一个二进制么?又该如何将他们从二进制文件中分离出来,恢复原来的文件类型,而使这些文件尽量不要受损?
2 回复
#2
风吹过b2018-09-21 16:23
什么叫二进制文件 ,所有的文件都可以叫到二进制文件。
二进制文件是按字节读写的文件模式,所有文件都支持这种的读写模式。

把一个视频或图片文件转为二进制,然后输出为一个二进制文件,然后再将此二进制文件恢复到原来的原文件使用?
视频文件和图片文件,本来就是使用 二进制模式打开保存。你还要怎么转换成二进制文件。
如图片文件,我在你前面一个贴子里 VB6.0的数组的上界上限是多少?是整型的范围么? 就回复了一个针对 BMP 格式的图片文件 进行读取和显示的模块文件,使用的就是二进制操作模式。

二个或两个以上文件输出为同一个二进制文件,再分离。
举个最简单的例子。

type FILEDATA
    DATA() as byte
end type

type FILETYPE
    FLIElog as string * 4  '文件标志,固定为4个字节
    COUNT as long        '文件数量
    Size() as long       '每个文件的大小
    File() as FILEDATA   '每个文件的大小
end type

保存时,选择保存文件标志,然后检查有多少个文件,写入 COUNT ,然后依次写入每个 文件的大小,个数要与 count 相符合。
然后再这之后依次写入每个文件的数据。

读取时,先读取4个字,保存到文件标志里,判断是否是指定的内容。
然后读4个字节到 count 中,判断为正整数,重定义 sizE()数组大小 和 file 的数组大小,然后一次性读入 size数组。
然后再根据 size 每个元素大小,重定义 File.data() 的大小。然后一个数组,一个数组的依次读下去。
每个 data 里,就是一个原始文件的数据。你想怎么处理就怎么处理。
#3
wds12018-09-22 09:05
参考rar,zip等打包软件原理,他们都具有打包和自解压功能。

你如果自己研究不同类型文件的数据类型,利用算法可以实现二进制文件最小的存储和还原【相当于你写一个压缩/解压软件】。
如果不进行任何处理,那么只要检查文件个数,在目标文件头区域写入每个文件的信息【包含数量、大小、位置】,在之后顺序写入文件即可。


1