§7、文件管理控件
文件處理 順序文件和隨機(jī)文件的打開(open)語(yǔ)句,EOF函數(shù),讀寫語(yǔ)句。
do while not eof(1) do until eof(1)
print #1, write #1,
input #1,a,b,c line input #1,s input(#1,100)
get #1,a put #1,”af”
打開方式:
順序文件Open "文件路徑+文件名(包括文件后綴)" For Output As #1-511
Open "文件路徑+文件名(包括文件后綴)" For Append As #1-511
Open "文件路徑+文件名(包括文件后綴)"For Input As #1-511
隨機(jī)文件:Open "文件路徑+文件名(包括文件后綴)"For Random As #1-511
二進(jìn)制文件:Open "文件路徑+文件名(包括文件后綴)"For Binary As #1-511
Open語(yǔ)句打開文件的注意:
1.如果以O(shè)utput、Append、Random、Binary模式打開一個(gè)不存在的文件時(shí),VB自動(dòng)創(chuàng)建一個(gè)相應(yīng)文件;
2.在Input Random Binary模式下,可以用不同的文件號(hào)打開同一文件,但Output Append方式不可以;
3.所有當(dāng)前使用的文件號(hào)必須是唯一的;
4.如果以O(shè)utput模式打開一個(gè)已存在的文件,即使沒有進(jìn)行寫操作原來(lái)數(shù)據(jù)也將被覆蓋。
Close語(yǔ)句注意:(Reset)
1.直接使用 Close語(yǔ)句(缺省文件號(hào)),則所有用Open語(yǔ)句打開的活動(dòng)文件都被關(guān)閉;
2.當(dāng)程序結(jié)束時(shí),所有打開的文件自動(dòng)被關(guān)閉。
Lock和Unlock語(yǔ)句注意:
1.對(duì)于二進(jìn)制文件,Lock和Unlock的是字節(jié)范圍;
2.對(duì)于隨機(jī)文件,Lock和Unlock的是記錄范圍;
3.對(duì)于順序文件,Lock和Unlock的是整個(gè)文件,即使指明范圍也不起作用;
4.缺省情況下Lock和Unlock的范圍是整個(gè)文件;
5.Lock和Unlock總是成對(duì)使用。
特別注意:在關(guān)閉文件或結(jié)束程序之前,必須用Unlock語(yǔ)句對(duì)先前鎖定的文件解鎖,否則會(huì)產(chǎn)生難以預(yù)料的錯(cuò)誤。
1.要對(duì)順序文件進(jìn)行寫操作,下列打開文件語(yǔ)句中正確的是( )。
Open "file1.txt" for output as #1
Open "file1.txt" for input as #1
Open "file1.txt" for Random as #1
Open "file1.txt" for binary as #1
2.在VB中文件訪問的類型有( )。
A.順序、隨機(jī)、二進(jìn)制 B.順序、隨機(jī)、字符
A. 順序、十六進(jìn)制、隨機(jī) D.順序、記錄、字符
例如:將文件Data1中的無(wú)序數(shù)據(jù)和Data2中的有序數(shù)據(jù)插入到Data3中,要求:Data3中的數(shù)據(jù)必須也是排好序。請(qǐng)?zhí)顚懣瞻滋幰詫?shí)現(xiàn)該題功能。
Private Sub Form_Click()
Dim a() As Integer, b() As Integer
Dim k As Integer, i As Integer
Open "e:\data1.txt" For Input As #2
Open "e:\data2.txt" For Input As #3
Do While Not EOF(2)
k = k + 1
ReDim Preserve a(k)
Input #2, a(k)
Loop
_______k=0______________________
Do While Not EOF(3)
k = k + 1
ReDim Preserve b(k)
Input #3, b(k)
Loop
Call insert(a, b)
Open "e:\data3.txt" For Output As #4
_k=ubound(b)____________________________
For i = 1 To k
Print #4, b(i)
Next i
Close
End Sub
Private Sub insert(a() As Integer, b() As Integer)
Dim m As Integer, i As Integer
Dim n As Integer, j As Integer
m = UBound(a): n = UBound(b)
_redim preserve b(m+n)_______________________
i = 0
Do While i < m
i = i + 1
j = n
Do While j >= 1 And a(i) < b(j)
If a(i) < b(j) Then
___b(j+1)=b(j)_______________________
j = j - 1
Else
Exit Do
End If
Loop
__b(j+1)=a(i)___________________________
n = n + 1
Loop
End Sub
相關(guān)推薦:2011年計(jì)算機(jī)等級(jí)考試二級(jí)VB基礎(chǔ)教程匯總計(jì)算機(jī)等級(jí)考試二級(jí)VB二十套上機(jī)試題及答案
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |