求教VB读写二进制文件的方法
Fso不支持二进制文件的读写,open 函数 中的 filename 支持的长度有限,只支持200多字节这样,100多中文写就完了,在实际环境中很容易就超过了。请问还有别的读写二进制文件的方法吗? --------------------编程问答-------------------- ado流对象api函数 --------------------编程问答-------------------- 这么长的文件名,比较易做图!
就用易做图的方法试试:
将文件路径拆开,一层层进入子目录,最后在当前目录打开文件。
ChDrive "C"--------------------编程问答-------------------- open 函数只支持短文件名,因此你可以先用API函数GetShortPathName将文件名转为短文件名,然后使用open函数进行操作。
ChDir "易做图易做图……易做图1"
ChDir "易做图易做图……易做图2"
……
Open "易做图易做图……易做图.dat" For Binary As #hFile
我不建议使用FSO对象,因为很多情况下它的效率不高。 --------------------编程问答-------------------- 直接对磁盘扇区进行读写,就没有“路径长度限制”的问题。
--------------------编程问答--------------------
Input 函数
返回 String,它包含以 Input 或 Binary 方式打开的文件中的字符。
语法
Input(number, [#]filenumber)
Input 函数的语法具有以下几个部分:
部分 描述
number 必要。任何有效的数值表达式,指定要返回的字符个数。
filenumber 必要。任何有效的文件号。
说明
通常用 Print # 或 Put 将 Input 函数读出的数据写入文件。Input 函数只用于以 Input 或 Binary 方式打开的文件。
与 Input # 语句不同,Input 函数返回它所读出的所有字符,包括逗号、回车符、空白列、换行符、引号和前导空格等。
对于 Binary 访问类型打开的文件,如果试图用 Input 函数读出整个文件,则会在 EOF 返回 True 时产生错误。在用 Input 读出二进制文件时,要用 LOF 和 Loc 函数代替 EOF 函数,而在使用 EOF 函数时要配合以 Get 函数。
注意 对于文本文件中包含的字节数据要使用 InputB 函数。对于 InputB 来说,number 指定的是要返回的字节个数,而不是要返回的字符个数。
--------------------编程问答--------------------
Input 函数示例
本示例使用 Input 函数来一次读文件中一个字符,并将它显示到立即窗口。本示例假设 TESTFILE 文件内含数行文本数据。
Dim MyChar
Open "TESTFILE" For Input As #1 ' 打开文件。
Do While Not EOF(1) ' 循环至文件尾。
MyChar = Input(1, #1) ' 读入一个字符。
Debug.Print MyChar ' 显示到立即窗口。
Loop
Close #1 ' 关闭文件。
补充:VB , 基础类