gpt4 book ai didi

vba - 从 VB6/VBA/VBScript 读取大型二进制文件

转载 作者:行者123 更新时间:2023-12-05 06:33:51 24 4
gpt4 key购买 nike

我正在尝试让旧式 VB6 应用程序读取大型(大于 2GB)二进制文件。我将缓冲区声明为:

Dim TCBuffer as String
TCPBuffer = String(4096, Chr(0))

并使用以下方法循环读取数据:

Get #FileNum, , TCPBuffer

但是一旦当前位置达到 2GB,上面的行就会引发错误。

Run-time error '63':

Bad record number

所以我想知道是否可以改用 Scripting.FileSystemObject。但是,这个对象似乎非常有限。一方面,您似乎只能创建和打开文本文件。

关于如何从 VB6 读取大型二进制文件有什么建议吗?

更新:

再考虑一下,另一种选择是使用 API 函数。但是这里 VB6 的真正限制之一是缺少无符号数据类型。因此,即使使用 API 函数也是一个技巧。

最佳答案

我最终创建了一个在内部使用 Windows API 的文件类。

任何接受或返回文件大小或偏移量的函数都是 Double 类型。一小段代码将该值与无符号长整数相互转换,即使它在传递给 API 时必须存储在有符号的 Long 中(因为 VB6/VBA 不支持无符号长整数)。

关于vba - 从 VB6/VBA/VBScript 读取大型二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50499168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com