| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1668 人关注过本帖
标题:get 函数读取二进制文件,地址超出长整形范围怎么办?
只看楼主 加入收藏
czm645
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-7-9
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
get 函数读取二进制文件,地址超出长整形范围怎么办?
我想根据地址获取文件中的数据,但地址超过长整形变量的范围,请问我怎么办?
搜索更多相关主题的帖子: 二进制 
2014-07-09 14:46
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4940
专家分:30047
注 册:2008-10-15
收藏
得分:5 
文件的地址超过了 长整形??

你的文件有多大?????超过了 2GB 一个的文件?
如果超过了2GB ,那你使用 API 进行文件读写吧。。。。。

或者使用 更新的语言进行 编程。

[ 本帖最后由 风吹过b 于 2014-7-9 15:01 编辑 ]

授人于鱼,不如授人于渔
早已停用QQ了
2014-07-09 14:59
czm645
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-7-9
收藏
得分:0 
文件有11.9G大,是一种由单精度数据组成的大规模网格文件,由每个数据的地址可以对应计算出这个数据的坐标(如经纬度等),谁能把API读写文件说得更明了些,拜托
2014-07-10 08:36
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4940
专家分:30047
注 册:2008-10-15
收藏
得分:0 
好吧,再次承认我对 API 不熟。试了一下,我第一步就失败。打开文件失败,网上可供参考例子的基本上都是 C/C++ 的。
基本都看不懂。

授人于鱼,不如授人于渔
早已停用QQ了
2014-07-10 15:52
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:5 
咱不推荐vb6读写文件大于2GB,就算熟悉位操作也挺麻烦的。
文件大小以及超4字节到8字节整数,还是可以操作,但更麻烦了。(都是非OPEN语句。)
真想用vb6解决问题,试试下面方法吧。
1.使用CreateFileMapping。
2.自己用C/C++做个DLL。
2014-07-10 16:59
alike123
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:107
专家分:428
注 册:2014-2-10
收藏
得分:5 
问楼上,c/c++做的dll  vb6.0可以用吗?这不是两个语言吗
2014-07-11 09:18
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4940
专家分:30047
注 册:2008-10-15
收藏
得分:0 
可以用的。

WINDOWS 中的 DLL ,大部分都是用 C/C++ 写。编译后都是二进制的机器代码,VB6 的真编译也是如此。

授人于鱼,不如授人于渔
早已停用QQ了
2014-07-11 13:41
茅十八
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:35
专家分:123
注 册:2014-3-11
收藏
得分:5 
以下是引用czm645在2014-7-9 14:46:46的发言:

我想根据地址获取文件中的数据,但地址超过长整形变量的范围,请问我怎么办?

你就使用VB的货币变量保存地址,长整型肯定装不下12G,货币变量占8字节,肯定装装下12G

Private Sub Command1_Click()
Dim k As Currency
k = (2 ^ 30) * 12   '能装下大于12G的地址
Print k
End Sub


另外,注意一点, 当数据较大时,应自己用计算器先算出结果,再把结果直接赋给变量,别像我上面那样k = (2 ^ 30) * 12
直接把结果赋给k ,即k=12884901888。

[ 本帖最后由 茅十八 于 2014-7-15 14:05 编辑 ]

个人QQ:1789851851,有学习问题,欢迎找我讨论,另外Win32 SDK开发群:179492890
2014-07-15 13:54
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4940
专家分:30047
注 册:2008-10-15
收藏
得分:0 
回复 8 楼 茅十八
Seek 函数
返回一个 Long,在 Open 语句打开的文件中指定当前的读/写位置。
-------------------------
Seek 语句
在 Open 语句打开的文件中,设置下一个读/写操作的位置。
position 必要。介于 1 – 2,147,483,647 之间的数字,指出下一个读写操作将要发生的位置。      
-------------------------
 2,147,483,647=2G-1

====================================
VB中规定读写位置不超过 LONG 。所以你打算用 货币型变量 来 指示 读写 位置,是无效的。

授人于鱼,不如授人于渔
早已停用QQ了
2014-07-15 14:49
czm645
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-7-9
收藏
得分:0 
渴望有大侠指点在VB中怎么用Openfile,Readfile,Creatfile等,给个实例学习学习
2014-08-04 15:20
快速回复:get 函数读取二进制文件,地址超出长整形范围怎么办?
数据加载中...
 
   



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

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