Private Sub Command1_Click() Open "c:\text.txt"For Input As #1 Line Input #1,x Print x End Sub 当再次单击命令按钮Commandl时,会显示“文件已打开”的出错信息,解决方法是 在Print x语句后写上Close#1,即打开的文件操作完毕后应及时关闭。 6.当利用Input(LOF(#文件号),文件号)语句一次读入顺序文件时,遇到“输入 超出文件尾”的错误信息。 主要是LOF(#文件号)函数获得文件内容的字节数,它是以Windows系统对字符采用 DBCS码,即西文是单字节,中文是双字节:而Input(LOF(#文件号),文件号)语句读 的是文件的字符数,在VB中一个西文字符和一个汉字均为一个字符。当文件内容中含有汉 字时,在使用:Iput(LOF(#文件号),文件号)函数时,会遇到输入超出文件尾”的错误 信息。 为了防止此类错误的发生,一般利用Line Input语句逐行读入最安全。 7.随机文件的记录类型不定长,引起不能正常存取。 随机文件是按记录为单位存取的,而且每条记录长度必须固定,一般利用Typ爬定义记 录类型。当记录中的某个成员为String时,必须确定其长度,即String*n,n是常数:否则 要影响对文件的存取。 8.如何读出随机文件中的所有记录,但又不知道记录号 一般,随机文件按记录号读取,当不知道记录号或者要全部读出记录时,则只要同顺序 文件一样的读取方法,采用循环结构加无记录号的Gt语句即可,程序段如下: Do While Not EOF(1) Get #1,,i Print i; Loop 随机文件读/写时可不写记录号,表示读时自动读下一条记录,写时插入到当前记录后。 7.4典型例题 例7-1编写统计文件“C:\filel.dat”中字母出现的次数(不区分大小写)。提示: 每次从文件中读取一个字符,判断是否是字母。若是字母,计数器加1。 解答: (1)新建工程,在窗体上添加1个命令按钮。 (2)为命令按钮编写单击事件过程,实现从文件中读取一个字符,判断是否是字母, 并计数,并在窗体上打印输出。 Private Sub Command1 Click() Dim num As Integer,c As String *1 num =0 Open "c:\file1.dat"For Input As #2 Do While Not EOF(2) c Input$(1.#2) '读取一个字符 c=UCase(c) Ifc>="A"And c<="Z"Or c>="a"And c<="z"Then )2 %?#$89 +! B#A B *!2(/ *!2/: <%)2 *UVcWX³Y % T?k()oÄÅpE+FG?ZÐÓÔL G ÆÇ[, /?ÄÅ\][ÞT© &Z+ [ [\]4\]?@^_`a34b96ca d;e: <f=>g ^L +%/y&_w`a01w?ëL6 3%C ü0" ) 8?L?!Lb¯ *!2%+%/y&?y&ÆÇ L0w?G !M 0M bjM 0 *01!c. T?G$*!2%+%/y&?y&_wT?kd7æçeEáp+, FG jAîï t+,UV?Mf *!2 ÆÇgaçhi h!ij)k4lmnHopg L³¨jÖ?¯j¸k¨¹º÷ølD?Mf ;1! D¨ tu *¨!> ¦mj ) T?÷øqDg¹º? ) ? Lwn opüÖ `;A qUh!4NWrsh!\ M?³¨yÖ?*þqr¨yO<isE¨T?]· MtÖÓÔ?"uv½¾ãw¨y > ÆÇ5?_¢nd$ 3 "<+89 > /:: ! ,T5þ¨y?)T!dMk¨?Txç7*+¨[ ' m 5 Áyoz{|}~
p!EFVw%þËx & )$ ¸Vß!ÖM 0?;<LnL L?yw ã Z$ %&N8_?G,âã WX³Y %&jWX³YÁcKB_?'Fß!ÖM 0?;<LnL? Ïyw?ÏG,ÄæE )2 %?#$89 2 (* :#() 2 D +! B#A4 %B *!2(/ 3 "<+89 #*!2E8:/9 FÖM 0 #G 8#9 *4#HB(B(%#IBJB+ #HBB(%#IBKB;