标题:关于VB读取BIN文件的指定范围数据
只看楼主
alexwugaopei
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-7-20
结帖率:0
已结贴  问题点数:20 回复次数:4 
关于VB读取BIN文件的指定范围数据

如何将00060H开始的地址,到文件的末尾单独截取出来,(文件大小20K内的BIN)保存为BIN文件,并且替换掉之前的源BIN文件,
自己目前整不出来什么办法,还请各位大侠指点,谢谢!
如下数据,红色的部分是要截取的,前面的数据是不用的要去掉的数据
02 00 F0 75 98 DA 75 89 20 75 8B FD 75 8D FD D2
8E D2 AC D2 AF C2 95 7F D0 7E 07 12 00 A9 D2 95
80 FE FF 02 00 64 8B 08 8A 09 89 0A AB 08 AA 09
A9 0A 12 00 4B 60 13 05 0A E5 0A 70 02 05 09 14
F9 12 00 4B FF 12 00 D1 80 E2 22 BB 01 06 89 82
8A 83 E0 22 50 02 E7 22 BB FE 02 E3 22 89 82 8A
83 E4 93 22 C0 D0 30 98 09 C2 98 85 99 80 A2 9A
92 A2 30 99 04 C2 99 C2 00 D0 D0 32 75 E7 82 75
E5 01 8F E4 8E E3 75 E6 46 75 E6 B9 00 AF E2 12
00 E3 22 75 E7 82 75 E5 02 8F E4 8E E3 8D E2 75
E6 46 75 E6 B9 00 02 00 E3 AE 07 1F EE 60 0D E4
FC FD 0D ED 70 01 0C 4C 60 EF 80 F6 22 75 E7 82
75 E5 03 8F E4 8E E3 75 E6 46 75 E6 B9 00 02 00
E3 20 00 FD EF 30 D0 04 D2 9B 80 02 C2 9B D2 00
F5 99 22 E4 F5 E7 F5 E5 F5 E6 75 E3 80 F5 E4 22
78 7F E4 F6 D8 FD 75 81 20 02 00 03

搜索更多相关主题的帖子: VB BIN 文件 范围 数据 
2018-07-20 15:19
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:10 
使用二进制打开文件,设置开始位置。
新建一个临时文件,从前面文件读一个字节,就到这里写一个字节。
删源文件,改名临时文件为原文件名。

优化方向,计算该读的数据大写,定义 byte 数组,一次性读入数组
一次性写入新文件。

手机上无法写代码。

授人于鱼,不如授人于渔
早已停用QQ了
2018-07-20 19:37
alexwugaopei
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-7-20
得分:0 
回复 2楼 风吹过b
我现在是这样写的,
Open "c:\b3.txt" For Binary As #1 '文件路径
Get #1, 1, a
TxtReceive.Text = a  '把读到的数据显示到TxtReceive以便跟原数据对比一下是否正确
Close #1

Open "c:\b3x.bin" For Binary Access Read Write As #1
Put #1, 1, a   '把数据写入到b3x.bin
Close #1
但是结果打开BIN文件数据变成ASCII码,怎么保存不了原有的TXT内部的16进制数据呢?
就是TXT内的16进制数据就是要烧录的BIN数据,但是后缀名为TXT,要如果把他转成BIN
文件,而用BIN烧录软件打开里面的数据还是TXT的内的数据,而是ASCII码怎么回事?如下图
2018-07-23 14:32
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:10 
将变量定义为字节类型,写入就没问题了。
dim A as byte



2018-07-24 13:53
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:0 
Private Sub Command1_Click()
  Open "d:\1.bin" For Binary As #1'原始文件
  Open "d:\2.bin" For Binary As #2'目标文件
  start1 = &H61             '读取开始位置
  len1 = LOF(1)- &H61          '读取长度
  ReDim filebyte(len1) As Byte    '定义读取缓存数组
  Get #1, start1, filebyte()     '读取起始位置到结尾的数据到数组
  Close #1
  Put #2, , filebyte          '写入数据到第二个文件
  Close #2
End Sub
2018-07-27 09:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-488716-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.358089 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved