当前位置:编程学习 > VB >>

VB二进制打开JPG文件

我要做一个图片加密文件,要加密JPG文件,那么如何二进制打开JPG文件,再将它的二进制内容显示在TEXT空间上呢?
Binary打开方式
最好提供一下多个图片一起加密的办法
答案:Dim file() As Byte, MyFiles As String

Open MyFiles For Binary As #3
'使用二进制方法打开文件



ReDim file(LOF(3) - 1) As Byte '因为数组从0开始,所以这里数组上标要减去1

Get #3, , file


'把文件内容存入数组
Close




'此时直接关闭二进制读取的文件

之后你就可以对数组file进行操作了。

二进制文件

二进制文件保存的数据是无格式的字节序列,文件中没有记录或字段这样的结构。二进制访问能提供对文件的完全控制,因为文件中的字节可以代表任何东西。例如,通过创建长度可变的记录可保存磁盘空间。当要保持文件的尺寸尽量小时,应使用二进制型访问。读写操作需要知道当前文件指针的位置,所以在程序中应实时跟踪文件指针的位置。需要注意的是,当把二进制数据写入文件中时,使用变量是 Byte 数据类型的数组的,而不是 String 变量。 String 被认为包含的是字符,而二进制型数据可能无易做图确地存在 String 变量中。

有关二进制操作语句。

1、打开二进制文件语句:
Open语句语法格式为:Open <文件名> For Binary As #<文件号>参数意义同顺序文件。对二进制文件,打开方式用Binary。

2、 文件的位置每个打开的二进制文件都有自己的文件指针,文件指针是一个数字值,指向下一次读写操作在文件中的位置。二进制文件中的每一个“位置”对应一个数据字节,因此,有n个字节的文件就有从1到n的位置。经过对二进制文件进行读写操作,会自动改变文件指针的位置。也可自由地改变文件指针或是获得指针的值,此时用Seek语句或Seek( )、Loc ( )函数。其语法格式和功能如下表:
语法格式 功能描述
Seek #<文件号>, <新位置值> 将文件指针设置为设置值所指定的“新位置”
变量名=Seek(<文件号>) 返回当前的文件指针位置(下一个要读写的字节)
变量名=Loc (<文件号>) 返回上一次读写的位置


说明:一般的,Loc( )返回值总比Seek( )的返回值小1,除非用Seek语句移动了指针。 在随机文件中也可使用Seek语句或Seek( )、Loc( )函数,但文件指针指向记录,而二进制文件中文件指针指向字节。

3、 二进制文件的读 | 写操作二进制文件的读写操作与随机文件的读写操作类似。从随机文件中读 | 写记录用get | put语句,同样从二进制文件中读|写数据用Get | put语句。语法格式为:
Get | Put #<文件号>,[读取位置 | 写入位置], <变量名>说明:读取位置指定读取数据的起始位置,读出的数据存入变量名指定的变量中。写入位置指定写入数据的起始位置,写入的数据即为变量名指定的变量的值,它可以是字符型,也可以是数值型。打开一个二进制文件时,文件指针指向1,使用Get或Put操作语句将改变文件指针的位置。

4、 二进制文件和随机文件的区别 二进制访问中的 Open 与随机存取的 Open 不同, 它没有指 定 Len = reclength。如果在二进制型访问的 Open 语句中包括了记录长度, 则被忽略。 往二进制文件写入数据时,在长度可变的字段中保存信息,而随机文件采用在固定大小字段中保存信息,所以保存同样信息时,为了减少文件大小,应采用二进制访问方式。例如,考虑有一个雇员记录文件。这个文件用长度固定的记录和字段来储雇员的信息。Type Person
ID


As Integer
MonthlySalary
As Currency
LastReviewDate
As Long
FirstName

As String * 15
LastName

As String * 15
Title

As String * 15
ReviewComments
As String * 150End Type不管字段的实际内容如何,该文件每条记录都占用 209 个字节。如果通过使用二进制型访问,可使磁盘空间的使用降到最小。因为这不需要固定长度的字段,类型声明语句可以省略字符串长度参数。Type Person
ID


As Integer
MonthlySalary
As Currency
LastReviewDate
As Long
FirstName

As String
LastName

As String
Title

As String
ReviewComments
As StringEnd TypePublic Empl As Person
'定义记录。例 编写一个复制文件的程序。Dim char As Byte


' 读取 | 写入二进制文件的数据只能是Byte类型Dim FileNum1, FileNum2 As IntegerFileNum1 = FreeFileOpen "D:\\JMDJ.DAT" For Binary As #FileNum1 ' 打开源文件FileNum2 = FreeFileOpen "D:\\JMDJ.BAK" For Binary As #FileNum2 ' 打开目标文件Do While Not EOF(FileNum1)Get #1, , char





' 从源文件读出一个字节Put #2, , char





' 将一个字节写入目标文件LoopClose




' 关闭打开的两个文件

5、 关闭二进制文件语句:Colse语句语法格式为:Colse [#文件号]参数意义同顺序文件。若省略“文件号”时,则关闭所有已由应用程序打开的文件。

上一个:VB程序判断打开图片
下一个:vb操作网站内容

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,