乌普萨拉排名:VB 输入超出文件尾(错误62)

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 07:44:16

    早期的VB是采用单字节处理方式(通常也称为ANSI方式),也就说一个英文字母用一个字节表示,一个汉字算两个字节,当然这样就可能出现半个汉字的问题。

    从VB 4.0起,VB采用了一种新的处理方式,即内部采用Unicode方式,即不论英文字母还是汉字,一律用两个字节表示,但Unicode还不够普及,所以VB只是在其内部完全使用Unicode,而在外部仍转换为人们习惯的ANSI方式,但在字符串处理上与先前的版本有所不同。例如:在中文Windows或英文Windows外挂RichWin 97中,Len("电子&电脑")=5(这里的&号为半角字符),而在以前的版本或纯英文Windows中Len("电子&电脑")=9。除了Len、Left、Right等字符串函数受此影响外,Input函数也受此影响。

    Input函数的第一个参数是要读入的字符数,它采用的是和Len一样的计数方式,即一个英文字母算一个字符,而一个汉字(两个字节)算一个字符。这看起来是个好主意,你不会读入半个汉字,但实际上糟透了,因为VB的LOF函数和FileLen函数都返回的是字节数,VB中没有一个能区分汉字和英文字母的LOF函数或FileLen函数!如果你测试文件d:\test1.txt全部是英文,那么你的这段程序可以正确运行,尽管你没有寄来测试文件,但我可以和你打赌,这个文件中有中文。如果你的文件中有100个汉字,那么LOF函数和FileLen函数返回文件长度200个字符,执行Input(200, filenum1),VB读到第100个汉字时就把文件读完了,所以提示错误:"输出超出文件尾"。可能会有人想,把LOF函数和FileLen函数返回文件长度除以2不就行了。是的,如果你的文件中只包括全角字符,那么这么改就对了,但我们平时接触的很多文件都是全角半角混杂的。VB提供了InputB函数,它可以按字节数读入文件,但实际上这个函数有错误,如果你用它读入的文件,那么你得到的可能是象"??????"这样的字符串。我想很多用户都见过这种奇怪的情况。

    Line Input语句就没有这个问题,因为它不计数,只看文件中是否有回车和换行,但Line Input语句比Input语句慢得多。怎么解决这个问题呢,我有一个办法不见得好,但可以应急。把Open打开文件的方式由Input改为Binary方式,即:

部分代码:

Open "C:\temp.txt" For Binary As #1
s = StrConv(InputB(LOF(1), #1), vbUnicode)
Close #1

我用VB编写了一个查询通讯录的小程序,在从文本文件中读取数据时,总是出现"实时错误62,输入超出文件尾"? VB程序的运行错误“7”超出内存是为什么 输入讯号超出范围?!!! 为什么登陆彩铃网站总是出现"你今日输入密码错误次数超出限制".请教各位 vb 错误? 谁知道,"安装文件时发生输入/输出(I/O)错误。怎么解决 安装文件时发生输入/输出(I/O)错误。 显示器显示“输入超出范围”怎么办? 电脑屏幕显示“输入频率超出范围” 有没有输入密码错误自动删除文件的软件? vb 内存溢出(错误 7) 装游戏出现"安装文件时发生输入/输出(I/O)错误" 输入掩码通过( )减少输入数据时的错误。 VB 在密码登陆框中,当用户输入用户名错误的时候,怎么让用户重新输入用户名和限制他仅输入三次即退出运行 VB 在密码登陆框中,当用户输入用户名错误的时候,怎么让用户重新输入用户名和限制他仅输入三次即退出运行 VB编程,在密码登陆框中,当用户输入用户名错误的时候,怎么让用户重新输入用户名和限制仅输入三次即退出运行 装游戏时说安装文件输入/输出(I/0)错误。这通常是因为安装介质或安装文件损坏造成的。 装游戏时说安装文件输入/输出(I/0)错误。这通常是因为安装介质或安装文件损坏造成的 装游戏时说安装文件输入/输出(I/0)错误。这通常是因为安装介质或安装文件损坏造成的。 安装文件时发生输入/输出(I/0)错误。这通常是因为安装介质或安装文件损坏造成的。 "安装文件时发生输入/输出(I/O)错误。这通常是因为安装介质或安装文件损坏造成的。 vb.net中"索引超出了数组界限" Vb 错误424 VB编程错误