永发信息网

vb 二进制打开文件

答案:2  悬赏:0  手机版
解决时间 2021-02-27 15:17
用二进制方式打开一个文件“G:\学习资料\第六学期\123.JPG”,从180位置开始读取,连续读取四个字节,其数值组成一个2X2的矩阵。写出代码!!!
最佳答案
Dim file() As Byte, MyFiles As String
MyFiles =  "G:\学习资料\第六学期\123.JPG"

Open MyFiles For Binary As #1     '使用二进制方法打开文件
    ReDim file(LOF(1) - 1) As Byte '因为数组从0开始,所以这里数组上标要减去1
    Get #1, , file             '把文件内容存入数组
    Close
Dim a(1, 1)
Dim i As Integer, j As Integer
For i = 0 To 1
    For j = 0 To 1
    a(i, j) = file(179 + i * (2 - 1) + j)
    Next
Next
全部回答
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 [#文件号]参数意义同顺序文件。若省略“文件号”时,则关闭所有已由应用程序打开的文件。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
酷威多少公里保养一次
以上各项,属子宫功能的是A.排出月经、孕育胎
绩效考核的含义是什么
打麻雀怎么才会胡?
我也是解不开啊
求虐女主身、男主心的言情小说
乌鲁木齐市第七十七小学地址在哪,我要去那里
弄虚作假欺上瞒下可以去纪委告发吗?
根据骨度分寸,下列穴位两者间距非3寸的是:A
闫家牛肉面地址在哪,我要去那里办事
XSX 两点一大 不会变心。(猜二字词)
电烤箱上额定功率1500瓦我使用210c.耗电量多
若规定axb=a+b+ab,则-2x3=多少,1x(2x3)=多少
龙爪芦荟和普通芦荟的区别图片怎么养
hpv39(+)hpv51(+)是啥意思
推荐资讯
麻城市南湖办事处船湖村村民委员会地址有知道
郁南县亿飞机动车驾驶培训中心招生点在什么地
p8600 win10 64位能带的动吗?
江苏省恒久管道有限公司在哪里啊,我有事要去
换了一根数据线,充电时充电器(充电的疙瘩)发
一个人先对喝醉酒的人动手,结果被醉酒的人打
农村信用社存折上显示转账支取是什么意思
盆栽樱桃树能结果子吗?产量多吗
“社会公约在公民之间确立了这样一种平等,以
天乐保化品地址在什么地方,想过去办事
钢管混凝土中承式拱桥是根据()划分的。A.承重
微信公众平台最新版, 文章中怎样链接(引用
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?