§7、文件管理控件
文件處理 順序文件和隨機文件的打開(open)語句,EOF函數(shù),讀寫語句。
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
隨機文件:Open "文件路徑+文件名(包括文件后綴)"For Random As #1-511
二進制文件:Open "文件路徑+文件名(包括文件后綴)"For Binary As #1-511
Open語句打開文件的注意:
1.如果以O(shè)utput、Append、Random、Binary模式打開一個不存在的文件時,VB自動創(chuàng)建一個相應(yīng)文件;
2.在Input Random Binary模式下,可以用不同的文件號打開同一文件,但Output Append方式不可以;
3.所有當前使用的文件號必須是唯一的;
4.如果以O(shè)utput模式打開一個已存在的文件,即使沒有進行寫操作原來數(shù)據(jù)也將被覆蓋。
Close語句注意:(Reset)
1.直接使用 Close語句(缺省文件號),則所有用Open語句打開的活動文件都被關(guān)閉;
2.當程序結(jié)束時,所有打開的文件自動被關(guān)閉。
Lock和Unlock語句注意:
1.對于二進制文件,Lock和Unlock的是字節(jié)范圍;
2.對于隨機文件,Lock和Unlock的是記錄范圍;
3.對于順序文件,Lock和Unlock的是整個文件,即使指明范圍也不起作用;
4.缺省情況下Lock和Unlock的范圍是整個文件;
5.Lock和Unlock總是成對使用。
特別注意:在關(guān)閉文件或結(jié)束程序之前,必須用Unlock語句對先前鎖定的文件解鎖,否則會產(chǎn)生難以預(yù)料的錯誤。
1.要對順序文件進行寫操作,下列打開文件語句中正確的是( )。
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.順序、隨機、二進制 B.順序、隨機、字符
A. 順序、十六進制、隨機 D.順序、記錄、字符
例如:將文件Data1中的無序數(shù)據(jù)和Data2中的有序數(shù)據(jù)插入到Data3中,要求:Data3中的數(shù)據(jù)必須也是排好序。請?zhí)顚懣瞻滋幰詫崿F(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年計算機等級考試二級VB基礎(chǔ)教程匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |