《vb編程技術》文件、驅動器和文件夾_第1頁
《vb編程技術》文件、驅動器和文件夾_第2頁
《vb編程技術》文件、驅動器和文件夾_第3頁
《vb編程技術》文件、驅動器和文件夾_第4頁
《vb編程技術》文件、驅動器和文件夾_第5頁
已閱讀5頁,還剩115頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第11章文件、驅動器和文件夾11.1文件系統(tǒng)控件11.2文件系統(tǒng)對象11.3傳統(tǒng)的文件I/O語句和函數(shù)習題十一11.1文件系統(tǒng)控件11.1.1驅動器列表框驅動器列表框DriveListBox是下拉式列表框,它與目錄列表框、文件列表框一樣,有許多標準屬性,包括Enabled、Visible等。圖11.1在運行期間的驅動器列表框11.1.2目錄列表框目錄列表框用來顯示當前驅動器上的目錄結構,剛建立時顯示當前驅動器的頂層目錄和當前目錄。頂層目錄用翻開的文件夾表示,當前目錄用加陰影的文件夾表示,當前目錄下的子目錄用關閉的文件夾表示,如圖11.2所示。圖11.2在設計階段的目錄列表框11.1.3文件列表框用驅動器列表框和目錄列表框可以指定當前驅動器和當前目錄,而文件列表框可以用來顯示當前目錄下的文件(可以通過Path屬性改變)。文件列表框的默認控件名是File1。與文件列表框有關的屬性較多,其主要屬性如表11-1所示。

表11-1文件列表框的常用屬性【例11-1】在實際應用中,驅動器列表框、目錄列表框和文件列表框往往需要同步操作,請編寫程序使三者同步。可以通過改變Path屬性來引發(fā)Change事件:PrivateSubDir1_Change()File1.Path=Dir1.PathEndSub該事件過程使窗體上的目錄列表框Dir1與文件列表框File1產生同步。類似地,增加下面的事件過程,就可以使三者同步。PrivateSubDrive1_Change()Dir1.Path=Drive1.DriveEndSub同步操作情況如圖11.3所示。圖11.3使驅動器列表框、目錄列表框、文件列表框三者同步11.2文件系統(tǒng)對象11.2.1文件系統(tǒng)對象的概念1.FileSystemObject模型VB6.0具有FSO模型功能,該模型提供了一個基于對象的工具來處理文件夾和文件。2.文件系統(tǒng)對象(FileSystemObject)FSO模型包括表11-2所示的對象。

表11-2FSO模型中的對象FSO模型包含在一個稱為Scripting的類型庫中,此類型庫位于Scrrun.Dll文件中。如果還沒有引用此文件,從“工程〞菜單的“引用〞對話框中選擇“MicrosoftScriptingRuntime"項,如圖11.4所示,然后就可以使用“對象瀏覽器〞來查看其對象、集合、屬性、方法、事件以及常數(shù)。圖11.4“引用〞對話框11.2.2使用文件系統(tǒng)對象編程1.創(chuàng)立FileSystemObject對象使用文件系統(tǒng)對象編程,首先必須創(chuàng)立一個FileSystemObject對象,然后才能使用其方法、屬性來管理驅動器、文件夾和文件等對象。有兩種方法可以創(chuàng)立一個FileSystemObject對象。(1)將一個變量聲明為FileSystemObject對象類型,如下所示:Dim〈變量名〉AsNewFileSystemObject(2)使用CreateObject方法來創(chuàng)立一個FileSystemObject對象,如下所示:Set〈變量名〉=CreateObject("Scripting.FileSystemObject")2.使用適當?shù)姆椒ㄔ贔ileSystemObject對象中,某些操作可以使用不同的方法,例如,想要創(chuàng)立一個新對象,既可以使用CreateFolder方法也可以使用CreateTextFile方法。(FSO對象模型不支持創(chuàng)立或刪除驅動器。)3.訪問已有的驅動器、文件和文件夾要訪問一個已有的驅動器、文件或文件夾,可使用FileSystemObject對象中相應的“Get〞方法:GetDrive、GetFolder、GetFile。4.訪問對象的屬性一旦有了對象的句柄,就能夠訪問其屬性。11.2.3管理驅動器1.獲得驅動器的信息Drive對象允許獲得一個系統(tǒng)的各個驅動器的信息,這些驅動器可以是物理的,也可以是位于網(wǎng)絡上的。通過該對象的屬性可以獲得以下信息:(1)以字節(jié)表示的驅動器總空間(TotalSize屬性)。(2)以字節(jié)表示的驅動器可用空間(AvailableSpace或FreeSpace屬性)。(3)給驅動器指定的字母號(DriveLetter屬性)。(4)驅動器類型,諸如軟盤、硬盤、遠程(網(wǎng)絡)盤、光盤或者RAM盤(DriveType屬性)。(5)驅動器序列號(SerialNumber屬性)。(6)驅動器使用的文件系統(tǒng)類型,如FAT、FAT32、NTFS等(FileSystem屬性)。(7)驅動器是否可用(IsReady屬性)。(8)共享和/或卷標的名稱(ShareName和VolumeName屬性)。(9)驅動器的路徑或根文件夾(Path和RootFolder屬性)。其中,DriveType屬性返回表11-3中所列的值。表11-3DriveType屬性的返回值2.Drive對象用法例如下面舉例說明如何使用Drive對象來收集有關驅動器的信息。【例11-2】查看驅動器信息。在Drive1中改變驅動器后,程序將彈出信息框,顯示所選驅動器的有關信息。設計步驟如下:(1)建立應用程序用戶界面并設置對象屬性。(2)編寫程序代碼。Drive1的Change事件代碼為PrivateSubDrive1_Change()DimfsoAsNewFileSystemObject,drvAsDrive,sAsStringmdrive=Drive1.DriveSetdrv=fso.GetDrive(fso.GetDriveName(mdrive))s="驅動器"&UCase(mdrive)&Chr(13)s=s&drv.VolumeName&vbCrLf&Chr(13)s=s&"最大空間:"&FormatNumber(drv.TotalSize/1024,0)s=s&"Kb"&vbCrLf&Chr(13)&Chr(13)s=s&"剩余空間:"&FormatNumber(drv.FreeSpace/1024,0)s=s&"Kb"&vbCrLfMsgBoxs,0,"查看驅動器信息"EndSub程序運行結果如圖11.5所示。圖11.5查看驅動器信息11.2.4管理文件夾1.文件夾對象Folder的方法與屬性表11-4列出了創(chuàng)立、刪除、移動和復制文件夾所使用的方法。表11-4創(chuàng)立、刪除、移動和復制文件夾的方法表11-5文件夾定位的方法表11-6Folder對象的屬性2.文件夾對象Folder的使用【例11-3】編寫程序進行文件夾管理,要求該程序可以對文件夾進行創(chuàng)立、復制、移動、刪除更名操作,如圖11.6所示。圖11.6文件夾管理器設計步驟如下:(1)建立應用程序用戶界面并設置對象屬性。(2)編寫程序代碼。首先在通用過程中聲明對象變量:DimfsoAsNewFileSystemObject,drvAsDrive,fldrAsFolder,sAsStringDrive1的Change事件代碼為PrivateSubDrive1_Change()圖11.7設計用戶界面Dir1.Path=Drive1.DriveChDriveDrive1.Drive:ChDirDir1.PathEndSubDrive2的Change事件代碼為PrivateSubDrive2_Change()Dir2.Path=Drive2.DriveEndSubDir1的Change事件代碼為PrivateSubDir1_Change()ChDirDir1.PathEndSub命令按鈕數(shù)組Command1的Click事件代碼為PrivateSubCommand1_Click(IndexAsInteger)Setdrv=fso.GetDrive(Drive1.Drive)SelectCaseIndexCase0 '新建Setfldr=fso.GetFolder(Dir1.Path)msg="請輸入新創(chuàng)立的文件夾名:"msg=msg&Chr(13)&Chr(13)&"當前的文件夾名為:"a=InputBox(msg&fldr.Path,"創(chuàng)立新文件夾","新文件夾")IfLen(Trim(a))<>0ThenSetfldr=fso.CreateFolder(a)Case1 '復制Setfldr=fso.GetFolder(Dir1.List(Dir1.ListIndex))fldr.CopyIIf(Right(Dir2.Path,1)="\",Dir2.Path,Dir2.Path&"\")Case2 '移動Setfldr=fso.GetFolder(Dir1.List(Dir1.ListIndex))IfDrive1.Drive<>Drive2.DriveThenMsgBox"不能在不同的驅動器間移動!",48,"移動"Elsefldr.MoveIIf(Right(Dir2.Path,1)="\",Dir2.Path,Dir2.Path&"\")EndIfCase3 '刪除Setfldr=fso.GetFolder(Dir1.List(Dir1.ListIndex))IfDir1.ListIndex=-1ThenMsgBox"不能刪除正翻開的文件夾!",48,"刪除"Elsemsg="真要刪除以下文件夾嗎?"&Chr(13)&Chr(13)a=MsgBox(msg&fldr.Path,1+32+256,"刪除文件夾")Ifa=1Thenfldr.DeleteEndIfCase4 '更名Setfldr=fso.GetFolder(Dir1.List(Dir1.ListIndex))msg="請輸入新的文件夾名:"msg=msg&Chr(13)&Chr(13)&"文件夾原名為:"a=InputBox(msg&fldr.Path,"文件夾更名",fldr.Path)IfLen(Trim(a))<>0Thenfldr.Name=aEndSelectDir2.RefreshDir1.RefreshEndSub程序運行結果如圖11.6所示。11.2.5管理文件文件管理主要有兩類:(1)移動、復制、和刪除文件。(2)創(chuàng)立、添加、刪除數(shù)據(jù)以及閱讀文件。

1.文件對象File的屬性文件對象File的屬性與文件夾對象的屬性相似,參見表11-6所示。2.移動、復制和刪除文件對文件的移動、復制和刪除,F(xiàn)SO模型都提供了兩種方法,見表11-7。表11-7移動、復制和刪除文件的方法【例11-4】編制文件管理器程序。可以復制、移動、刪除文件,還可以查看文件的屬性和對文件進行更名的操作,如圖11.8所示。圖11.8文件管理器設計步驟如下:(1)建立應用程序用戶界面并設置對象屬性。與例11-3相仿,只是在兩個框架中各多了一個文件列表框File1(File2)。(2)編寫程序代碼。首先在通用過程中聲明對象變量:DimfsoAsNewFileSystemObject,drvAsDriveDimfldrAsFolder,filAsFile,sAsStringDrive1的Change事件代碼為PrivateSubDrive1_Change()Dir1.Path=Drive1.DriveChDriveDrive1.Drive:ChDirDir1.PathEndSubDrive2的Change事件代碼為PrivateSubDrive2_Change()Dir2.Path=Drive2.DriveEndSubDir1的Change事件代碼為PrivateSubDir1_Change()File1.Path=Dir1.PathChDirDir1.PathEndSubDir2的Change事件代碼為PrivateSubDir2_Change()File2.Path=Dir2.PathEndSub命令按鈕數(shù)組Command1的Click事件代碼為PrivateSubCommand1_Click(IndexAsInteger)OnErrorGoToErrorHandler '翻開錯誤處理程序Setdrv=fso.GetDrive(Drive1.Drive)SelectCaseIndexCase0 '屬性Setfil=fso.GetFile(File1.FileName)msg="最后修改日期:"&fil.DateLastModified&Chr(13)msg=msg&"文件名:"&fil.Name&Chr(13)msg=msg&"文件長度:"&fil.Size&Chr(13)msg=msg&"文件類型:"&fil.Type&Chr(13)MsgBoxmsg,,"文件管理器"Case1 '復制Setfil=fso.GetFile(File1.FileName)fil.CopyIIf(Right(Dir2.Path,1)="\",Dir2.Path,Dir2.Path&"\")Case2 '移動Setfil=fso.GetFile(File1.FileName)IfDrive1.Drive<>Drive2.DriveThenMsgBox"不能在不同的驅動器間移動!",48,"移動"Elsefil.MoveIIf(Right(Dir2.Path,1)="\",Dir2.Path,Dir2.Path&"\")EndIfCase3 '刪除Setfil=fso.GetFile(File1.FileName)msg="真要刪除以下文件嗎?"&Chr(13)&Chr(13)a=MsgBox(msg&fil,1+32+256,"刪除文件")Ifa=1Thenfil.DeleteCase4 '更名Setfil=fso.GetFile(File1.FileName)msg="請輸入新的文件名:"&Chr(13)&Chr(13)&"文件原名為:"a=InputBox(msg&fil,"文件更名",fil.Name)IfLen(Trim(a))<>0Thenfil.Name=aEndSelectFile1.RefreshFile2.RefreshExitSub '退出程序,以免進入錯誤處理程序ErrorHandler: '錯誤處理程序MsgBox"應該選擇一個文件",,"文件管理器"EndSub程序運行結果如圖11.8所示。3.數(shù)據(jù)文件的創(chuàng)立有3種方法可以創(chuàng)立順序型的空文本文件c:\testfile.txt。(1)使用CreateTextFile方法:DimfsoAsNewFileSystemObject,filAsFileSetfil=fso.CreateTextFile("c:\testfile.txt",True)(2)使用FileSystemObject對象的OpenTextFile方法,該對象的ForWriting標志設置為DimfsoAsNewFileSystemObject,tsAsNewTextStreamSetts=fso.OpenTextFile("c:\testfile.txt",ForWriting)(3)使用帶ForWriting標志設置的OpenAsTextStream方法:DimfsoAsNewFileSystemObject,filAsFile,tsAsTextStreamSetfso=CreateObject("Scripting.FileSystemObject")fso.CreateTextFile("testfile.txt")Setfil=fso.GetFile("testfile.txt")Setts=fil.OpenAsTextStream(ForWriting)4.數(shù)據(jù)文件的寫入文本文件一經(jīng)創(chuàng)立,就可以分3步向其中參加數(shù)據(jù):(1)翻開文本文件以備寫入數(shù)據(jù)。(2)寫入數(shù)據(jù)。(3)關閉文件。添加數(shù)據(jù)所使用的方法如表11-8所示。5.從文件中讀取數(shù)據(jù)讀取數(shù)據(jù)所使用的方法如表11-9所示。表11-8添加數(shù)據(jù)所使用的方法表11-9讀取數(shù)據(jù)所使用的方法【例11-5】使用FSO模型。利用TextStream對象的屬性和方法進行文本文件的各種操作,如圖11.9所示。圖11.9文本編輯器圖11.10用戶界面的設計設計步驟如下:(1)建立應用程序用戶界面與設置對象屬性,如圖11.10所示。(2)編寫程序代碼。首先在通用過程中聲明對象變量:DimfsoAsNewFileSystemObject,filAsTextStream窗體的Resize事件代碼為PrivateSubForm_Resize()WithText1.Height=Form1.ScaleHeight.Width=Form1.ScaleWidth-Picture1.WidthEndWithCommand1(4).Top=Form1.ScaleHeight-Command1(4).Height-50EndSub命令按鈕數(shù)組Command1的Click事件代碼為PrivateSubCommand1_Click(IndexAsInteger)CommonDialog1.Flags=0SelectCaseIndexCase0 '新建Text1.Text=""Form1.Caption="未命名"Case1CommonDialog1.ShowOpen'顯示“翻開〞公共對話框fname=CommonDialog1.FileNameIffname<>""ThenText1.Text=""Setfil=fso.OpenTextFile(fname)b=""b=fil.ReadAllText1.Text=Left(b,20000)EndIfForm1.Caption=fnameCase2IfForm1.Caption="未命名"OrForm1.Caption=""ThenCommonDialog1.ShowSave '顯示“另存為〞公共對話框fname=CommonDialog1.FileNameElsefname=Form1.CaptionEndIfIfForm1.Caption<>"未命名"AndForm1.Caption<>""ThenSetfil=fso.CreateTextFile(fname,True)fil.WriteText1.TextForm1.Caption=fnameEndIfCase3CommonDialog1.ShowSave'顯示“另存為〞公共對話框fname=CommonDialog1.FileNameIffname<>""ThenSetfil=fso.CreateTextFile(fname,True)fil.WriteText1.TextForm1.Caption=fnameEndIfCase4UnloadMe '關閉EndSelectText1.SetFocusEndSub程序運行結果如圖11.9所示。11.3傳統(tǒng)的文件I/O語句和函數(shù)11.3.1數(shù)據(jù)文件的類型計算機的數(shù)據(jù)文件按數(shù)據(jù)的存放方式,分為以下3種類型:(1)順序型:用于連續(xù)存放的文本數(shù)據(jù)。(2)隨機型:用于有固定長度記錄結構的文本數(shù)據(jù)或者二進制數(shù)據(jù)。(3)二進制型:以二進制格式保存,能用來存儲任何所希望的數(shù)據(jù)。在VB中,數(shù)據(jù)文件的處理操作一般按下面3步進行:(1)翻開(或建立)文件。(2)進行讀、寫操作。(3)關閉文件。11.3.2訪問順序文件1.順序文件的翻開在對文件進行操作之前,首先要翻開文件。當按順序型訪問翻開一個文件時,需要使用Open語句,其語法為Open〈文件名〉For{Input|Output|Append}As〈文件號〉[Len=buffersize]2.順序文件的讀取操作要讀取文本文件的內容,應以Input方式翻開該文件。然后使用LineInput#、Input(),或者Input#語句將文件復制到內存變量中:LineInput#〈文件號〉,〈變量名〉Input(Length,〈文件號〉)Input#〈文件號〉,〈變量名1〉[,〈變量名2〉,...]3.順序文件的寫入操作要將數(shù)據(jù)寫入文本文件,應以Output或Append方式翻開該文件。然后使用Print#或者Write#語句將數(shù)據(jù)寫入文件中:Print#〈文件號〉,〈數(shù)據(jù)〉[{,|;}]Write#〈文件號〉,〈數(shù)據(jù)〉4.順序文件的關閉翻開一個文件后,在進行其他相關類型的操作前,必須先使用Close語句關閉它。其語法為Close〈文件號1〉[,〈文件號2〉,...]【例11-6】設計一個簡易的文本編輯器,使其具有創(chuàng)立、編輯、保存普通文本文件的功能,如圖11.11所示。圖11.11簡易文本編輯器設計步驟如下:(1)建立應用程序用戶界面并設置對象屬性。選擇“新建〞工程,進入窗體設計器,在窗體上增加一個文本框Text1,一個公共對話框CommonDialog1和5個命令按鈕Command1~Command5,如圖11.12所示。設置窗體、文本框、公共對話框的屬性如下表所示,命令按鈕及其他的屬性設置參見圖11.12。對象屬性如表11-10所示。圖11.12建立用戶界面及設置對象屬性表11-10屬性設置(2)編寫代碼?!靶陆è暶畎粹oCommand1的Click事件代碼為PrivateSubCommand1_Click()Text1.Text=""Form1.Caption="未命名"Text1.SetFocusEndSub“翻開〞命令按鈕Command2的Click事件代碼為PrivateSubCommand2_Click()CommonDialog1.ShowOpen'顯示“翻開〞公共對話框fname=CommonDialog1.FileNameIffname<>""ThenText1.Text=""OpenfnameForInputAs#1 '翻開文件b=""DoUntilEOF(1) '沒有到文件尾LineInput#1,nextline '讀數(shù)據(jù)b=b&nextline&Chr(13)&Chr(10)LoopClose#1 '關閉文件Text1.Text=bEndIfForm1.Caption=fnameEndSub“保存〞命令按鈕Command3的Click事件代碼為PrivateSubCommand3_Click()IfForm1.Caption="未命名"OrForm1.Caption=""ThenCommonDialog1.ShowSave '顯示“另存為〞公共對話框fname=CommonDialog1.FileNameElsefname=Form1.CaptionEndIfIffname<>""ThenOpenfnameForOutputAs#1'以Output方式翻開文件Print#1,Text1.Text '寫入數(shù)據(jù)Close#1 '關閉文件EndIfEndSub“另存〞命令按鈕Command4的Click事件代碼為PrivateSubCommand4_Click()CommonDialog1.ShowSave'顯示“另存為〞公共對話框fname=CommonDialog1.FileNameIffname<>""ThenOpenfnameForOutputAs#1'以Output方式翻開文件Print#1,Text1.Text '寫入數(shù)據(jù)Close#1 '關閉文件EndIfEndSub“關閉〞命令按鈕Command5的Click事件代碼為PrivateSubCommand5_Click()Text1.Text=""UnloadMeEndSub運行程序,單擊不同的命名按鈕,可以進行不同的文本編輯操作。如圖11.13所示,單擊“翻開〞按鈕時,將彈出“翻開〞對話框,從中選擇需要翻開的文件,將內容讀入文本框中。單擊“保存〞按鈕時,將翻開“保存〞對話框,可以對文本內容進行保存,如圖11.14所示。圖11.13在文本編輯器中單擊“翻開〞按鈕圖11.14在文本編輯器中單擊“保存〞按鈕11.3.3訪問隨機文件1.隨機文件的翻開與關閉與順序文件不同,翻開一個隨機文件后,既可以用于寫操作,也可以用于讀操作。隨機文件的翻開仍用Open語句,但其語法不同:Open〈文件名〉[ForRandom]As〈文件號〉Len=〈記錄長度〉2.隨機文件的讀寫操作隨機文件與順序文件的讀寫操作類似,但通常把需要讀寫的記錄中的各字段放在一個記錄類型中,同時應指定每個記錄的長度。其他操作。(1)把記錄讀入變量,使用Get#語句:Get#〈文件號〉,〈記錄號〉,〈變量名〉(2)使用Put#語句可以把數(shù)據(jù)寫入或替換隨機文件中的記錄:Put#〈文件號〉,〈記錄號〉,〈變量名〉(3)添加記錄,應使用前述代碼段中所示的Put語句。把〈記錄號〉的值設置為比文件中的記錄數(shù)多1。(4)刪除記錄。通過去除其字段可以刪除一個記錄,但是該記錄仍在文件中存在。要去除隨機訪問文件中刪除的記錄,請按照以下步驟執(zhí)行:(1)創(chuàng)立一個新文件。(2)把有用的所有記錄從原文件復制到新文件。(3)關閉原文件并用Kill語句刪除它。(4)使用Name語句把新文件以原文件的名字重新命名。隨機文件對于存儲結構一定的數(shù)據(jù)比較方便?!纠?1-7】利用隨機文件保存學生的成績,可以輸入學生的學號、姓名以及3門功課的成績,也可瀏覽或刪除數(shù)據(jù)。設計步驟如下:(1)建立應用程序用戶界面并設置對象屬性。設置框架、文本框、標簽、列表框和命令按鈕的屬性如圖11.15所示。(2)編寫事件代碼。

圖11.15建立用戶界面及設置對象屬性首先在窗體的通用過程段創(chuàng)立用戶定義類型并聲明變量:PrivateTypecjxmAsString*6xhAsString*6xbAsString*2sxAsIntegerywAsIntegerwyAsIntegerEndTypePrivatedaAscj編寫窗體的Load事件代碼,使之具有顯示數(shù)據(jù)的功能:PrivateSubForm_Load()DimlastrecAsInteger,sxAsSingleDimywAsSingleOpen"xsda2.dat"ForRandomAs#1Len=Len(da) '翻開隨機文件lastrec=LOF(1)/Len(da)List1.ClearForn=1TolastrecGet#1,n,daWithdaxh=Format(.xh,"@@@@")xm=Format(RTrim(.xm),"@@@@")xb=Format(RTrim(.xb),"@@")sx=Format(.sx,"##")yw=Format(.yw,"##")wy=Format(.wy,"##")msg=xh&xm&xb&""&Str(yw)&""&Str(wy)&""&Str(sx)EndWithList1.AddItemmsgNextClose#1 '關閉隨機文件EndSub編寫“輸入〞命令按鈕Command1的Click事件代碼:PrivateSubCommand1_Click()Fori=0To5Text1(i).Text=""NextText1(0).SetFocusEndSub編寫“添加〞命令按鈕Command2的Click事件代碼:PrivateSubCommand2_Click()DimlastrecAsIntegerWithda.xh=Text1(0).Text.xm=Text1(1).Text.xb=Text1(2).Text.sx=Val(Text1(3).Text).yw=Val(Text1(4).Text).wy=Val(Text1(5).Text)EndWithOpen"xsda2.dat"ForRandomAs#1Len=Len(da) '翻開隨機數(shù)據(jù)文件lastrec=LOF(1)/Len(da)Put#1,lastrec+1,daClose#1CallForm_LoadText1(0).SetFocusEndSub編寫“刪除〞命令按鈕Command3的Click事件代碼:PrivateSubCommand3_Click()DimlastrecAsIntegerrecnum=List1.ListIndex+1Open"rec.tem"ForRandomAs#1Len=Len(da) '翻開臨時隨機文件Open"xsda2.dat"ForRandomAs#2Len=Len(da) '翻開隨機數(shù)據(jù)文件lastrec=LOF(2)/Len(da)Forn=1TolastrecIfn<>recnumThenGet#2,n,daPut#1,,daElseGet#2,n,daWithdaText1(0).Text=.xhText1(1).Text=.xmText1(2).Text=.xbText1(3).Text=.sxText1(4).Text=.ywText1(5).Text=.wyEndWithEndIfNextClose#1Close#2Kill"xsda2.dat"Name"rec.tem"As"xsda2.dat"CallForm_LoadText1(0).SetFocusEndSub編寫“結束〞命令按鈕Command4的Click事件代碼:PrivateSubCommand4_Click()UnloadMeEndSub編寫列表框List1的Click事件代碼:PrivateSubList1_Click()IfList1.ListIndex>-1ThenCommand3.Enabled=TrueElseCommand3.Enabled=FalseEndIfEndSub程序運行結果如圖11.16所示。圖11.16學生成績管理運行結果11.3.4訪問二進制文件1.創(chuàng)立和翻開二進制文件翻開和創(chuàng)立一個二進制文件都是用同一個Open語句來實現(xiàn)的,其格式如下:Open〈文件名〉ForBinaryAs〈文件號〉2.讀寫二進制文件讀文件操作是從已翻開的文件的某個位置開始,讀取一定長度的數(shù)據(jù)。寫文件操作是在已翻開的二進制文件的指定位置寫入字節(jié)。一個二進制文件被翻開后,可以用Get語句來讀取數(shù)據(jù),用Put#語句在任何位置寫入字節(jié)。其格式為Get#〈文件號〉,〈字節(jié)數(shù)〉,〈變量名〉Put#〈文件號〉,〈字節(jié)數(shù)〉,〈變量名〉3.關閉二進制文件為防止數(shù)據(jù)信息喪失,在使用完二進制文件后要立刻關閉它們。關閉二進制文件用Close語句,格式如下:Close#〈文件號〉〈文件號〉是要關閉文件的文件號,如果省略它,那么所有已翻開的文件都將被關閉?!纠?1-8】編寫程序,建立一個二進制文件,然后用Seek函數(shù)返回各項數(shù)據(jù)的位置。設計步驟如下:(1)在窗體上建立3個命令按鈕,其標題Caption屬性分別為“建立文件〞、“返回位置〞和“退出〞。(2)編寫事件代碼?!敖⑽募暶畎粹oCommand1的Click事件代碼為PrivateSubCommand1_Click(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論