VB編程ppt課件第9章_第1頁
VB編程ppt課件第9章_第2頁
VB編程ppt課件第9章_第3頁
VB編程ppt課件第9章_第4頁
VB編程ppt課件第9章_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第9章文件VB2005提供了強(qiáng)大的文件訪問與處理功能。它除了提供傳統(tǒng)的文件訪問方式外,還可以使用System.IO命名空間訪問文件,并且新增了一個性能更加強(qiáng)大的My.Computer.FileSystem對象。本章主要介紹文件的基本概念,以及在VB2005中訪問各種類型文件的方法。第9章文件VB2005提供了強(qiáng)大的文件訪問與處理功能。它19.1文件的結(jié)構(gòu)和文件的分類文件是指存儲在外部物理介質(zhì)上的數(shù)據(jù)的集合。它可以永久性地保存數(shù)據(jù)。計算機(jī)操作系統(tǒng)是以文件為單位對數(shù)據(jù)進(jìn)行管理的。這一節(jié)主要介紹文件的結(jié)構(gòu)和分類。9.1文件的結(jié)構(gòu)和文件的分類文件是指存儲在外部物理介質(zhì)上29.1.1文件的結(jié)構(gòu)為了有效地存取數(shù)據(jù),數(shù)據(jù)必須以某種特定方式存放,這種方式稱為文件的結(jié)構(gòu)。基本的文件結(jié)構(gòu)有:字符、字段、記錄。1.字符(Character)字符是數(shù)據(jù)的最小單位,是構(gòu)成文件的最基本單位。字母、數(shù)字、特殊符號都可以看成是一個字符。2.字段(Field)字段也稱為域,是指由某種數(shù)據(jù)類型及若干字符組成的一項(xiàng)數(shù)據(jù),通常表示特定含義。3.記錄(Record)記錄是由一個或多個相關(guān)聯(lián)的字段組成,是計算機(jī)處理數(shù)據(jù)的基本單位。文件就是記錄的集合。9.1.1文件的結(jié)構(gòu)為了有效地存取數(shù)據(jù),數(shù)據(jù)必須以某種特39.1.2文件的分類根據(jù)不同的分類標(biāo)準(zhǔn),文件可分為不同的類型。1.根據(jù)數(shù)據(jù)性質(zhì)分類根據(jù)數(shù)據(jù)的性質(zhì),文件可以分為程序文件和數(shù)據(jù)文件。2.根據(jù)數(shù)據(jù)的存儲形式分類根據(jù)數(shù)據(jù)的存儲形式,文件可以分為順序文件和隨機(jī)文件。3.根據(jù)數(shù)據(jù)的編碼分類根據(jù)數(shù)據(jù)的編碼,文件可以分為ASCII文件和二進(jìn)制文件。9.1.2文件的分類根據(jù)不同的分類標(biāo)準(zhǔn),文件可分為不同的49.2訪問文件根據(jù)不同類型的文件,訪問數(shù)據(jù)的方式也不相同。VB2005提供了三種文件訪問模式:順序訪問模式、隨機(jī)訪問模式、二進(jìn)制訪問模式。訪問文件,基本操作步驟一般都須經(jīng)過以下三步完成:1)首先打開文件,如果文件不存在應(yīng)先創(chuàng)建文件。2)當(dāng)文件打開后,就可以對文件進(jìn)行讀或?qū)懖僮髁恕?)當(dāng)文件操作完畢,應(yīng)該關(guān)閉文件。9.2訪問文件根據(jù)不同類型的文件,訪問數(shù)據(jù)的方式也不相同59.2.1使用傳統(tǒng)的方式訪問文件VB2005支持以前版本傳統(tǒng)的文件訪問方式。傳統(tǒng)的文件訪問方式就是通過調(diào)用VB系統(tǒng)提供的文件訪問函數(shù)來訪問文件。不同類型的文件,訪問時使用的函數(shù)也有所差異。常用的文件訪問函數(shù)訪問的文件類型,見表。函數(shù)名稱函數(shù)實(shí)現(xiàn)的操作順序訪問模式隨機(jī)訪問模式二進(jìn)制訪問模式FileOpen打開或創(chuàng)建文件允許允許允許FileClose關(guān)閉文件允許允許允許9.2.1使用傳統(tǒng)的方式訪問文件VB2005支持以前版6Input從打開的順序文件中讀取數(shù)據(jù)允許允許不允許InputString返回打開文件字符值允許不允許不允許LineInput從打開的順序文件中讀取一行數(shù)據(jù)允許不允許不允許Print、PrintLine將格式化的顯示數(shù)據(jù)寫入順序文件允許不允許不允許Write、WriteLine將數(shù)據(jù)寫入順序文件允許不允許不允許Input從打開的順序文件中讀取數(shù)據(jù)允許允許不允許Input79.2.1使用傳統(tǒng)的方式訪問文件1.訪問順序文件順序文件訪問模式的規(guī)則最簡單,讀取時從第1條記錄“順序”讀到最后一條記錄,寫入時也一樣,不可以在數(shù)據(jù)間隨意跳轉(zhuǎn)。將數(shù)據(jù)寫入順序文件,通常有3個步驟:打開、寫入和關(guān)閉。從順序文件讀取數(shù)據(jù)到內(nèi)存的步驟也有3個步驟:打開、寫入和關(guān)閉。(1)打開文件打開或創(chuàng)建文件調(diào)用FileOpen函數(shù),其語法格式如下:FileOpen(〈文件編號〉,〈文件名〉,〈模式〉[,〈存取方式〉,〈共享方式〉,〈記錄長度〉])(2)關(guān)閉文件關(guān)閉文件調(diào)用FileClose函數(shù),其語法格式如下:FileClose([〈文件編號〉[,〈文件名〉,…]])9.2.1使用傳統(tǒng)的方式訪問文件1.訪問順序文件89.2.1使用傳統(tǒng)的方式訪問文件【例9-1】打開C盤下的file.txt文件,并顯示該文件的文件號、文件名和字符數(shù),然后關(guān)閉。PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimarr(10)AsSingleDimfileNameAsStringDimfileNumAsIntegerfileName=InputBox$("請輸入要打開的文件名:") '輸入要打開的文件fileNum=FreeFile() '得到文件號FileOpen(fileNum,fileName,OpenMode.Output) '打開指定文件'顯示文件信息MessageBox.Show("打開文件名是"+fileName+"的文件,該文件的文件號是"+Str(fileNum))FileClose(fileNum) '關(guān)閉文件EndSub9.2.1使用傳統(tǒng)的方式訪問文件【例9-1】打開C盤下的99.2.1使用傳統(tǒng)的方式訪問文件(3)寫操作將數(shù)據(jù)寫入磁盤文件調(diào)用Print、PrintLine、Write和WriteLine函數(shù)。這4個函數(shù)的格式相同,其語法格式如下:Print(〈文件編號〉[,Output])PrintLine(〈文件編號〉[,Output])Write(〈文件編號〉[,Output])WriteLine(〈文件編號〉[,Output])9.2.1使用傳統(tǒng)的方式訪問文件(3)寫操作109.2.1使用傳統(tǒng)的方式訪問文件【例9-2】使用Print、PrintLine函數(shù)向file.txt文件中寫入數(shù)據(jù)。PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickFileOpen(1,"c:\file.txt",OpenMode.Output) '打開指定文件Print(1,"大家") '寫入數(shù)據(jù),不包括換行符Print(1,"好!")PrintLine(1) '寫入換行符PrintLine(1,"歡迎使用",TAB(),"VB2005!")'寫入數(shù)據(jù),包括換行符PrintLine(1,"VB2005",TAB(),"是VB的最新版本。")PrintLine(1,SPC(3),"它具有強(qiáng)大的文件操作功能。")FileClose(1) '關(guān)閉文件EndSub9.2.1使用傳統(tǒng)的方式訪問文件【例9-2】使用Prin119.2.1使用傳統(tǒng)的方式訪問文件【例9-3】使用Write、WriteLine函數(shù)向newfile.txt文件中寫入數(shù)據(jù)。PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickFileOpen(1,"c:\newfile.txt",OpenMode.Output) '打開指定文件Write(1,"VisualStudio2005") '寫入數(shù)據(jù),不包括換行符Write(1,"是新一代的開發(fā)平臺。")WriteLine(1) '寫入換行符WriteLine(1,"它",TAB(),"功能強(qiáng)大,")'寫入數(shù)據(jù),包括換行符WriteLine(1,SPC(3),"使用簡單,")WriteLine(1,TAB(10),"是程序開發(fā)人員的最好選擇。")FileClose(1) '關(guān)閉文件EndSub9.2.1使用傳統(tǒng)的方式訪問文件【例9-3】使用Writ129.2.1使用傳統(tǒng)的方式訪問文件(4)讀操作讀取順序文件的操作常用到Input、LineInput和InputString函數(shù)。其語法格式如下:Input(〈文件編號〉,〈變量名〉)LineInput(〈文件編號〉)InputString(〈文件編號〉,〈表達(dá)式〉)9.2.1使用傳統(tǒng)的方式訪問文件(4)讀操作139.2.1使用傳統(tǒng)的方式訪問文件【例9-4】使用Input、LineInput和InputString函數(shù)讀取file.txt和newfile.txt文件中的數(shù)據(jù)。PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click '調(diào)用Input函數(shù)事件Dimstr1AsStringFileOpen(1,"c:\newfile.txt",OpenMode.Input) '打開指定文件Input(1,str1) '讀取數(shù)據(jù)賦給變量str1MessageBox.Show(str1) '顯示讀取數(shù)據(jù)Input(1,str1)MessageBox.Show(str1)Input(1,str1)MessageBox.Show(str1)Input(1,str1)MessageBox.Show(str1)FileClose(1) '關(guān)閉文件EndSub9.2.1使用傳統(tǒng)的方式訪問文件【例9-4】使用Inpu149.2.1使用傳統(tǒng)的方式訪問文件PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click '調(diào)用LineInput函數(shù)事件Dimstr2AsStringFileOpen(1,"c:\newfile.txt",OpenMode.Input) '打開指定文件str2=LineInput(1) '讀取數(shù)據(jù)賦給變量str2MessageBox.Show(str2)EndSubPrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click '調(diào)用InputString函數(shù)事件Dimstr3AsStringFileOpen(1,"c:\newfile.txt",OpenMode.Input) '打開指定文件str3=InputString(1,10) '讀取數(shù)據(jù)賦給變量str3MessageBox.Show(str3)EndSub9.2.1使用傳統(tǒng)的方式訪問文件PrivateSub159.2.1使用傳統(tǒng)的方式訪問文件(5)幾個重要的文件函數(shù)1)Loc函數(shù)。Loc函數(shù)返回一個Long數(shù)據(jù)類型的值,該值指定打開文件中當(dāng)前的讀/寫位置。2)LOF函數(shù)。LOF函數(shù)返回Long數(shù)據(jù)類型的值,表示用FileOpen函數(shù)打開的文件的大小(以字節(jié)為單位)。3)Eof函數(shù)。Eof函數(shù)表示當(dāng)?shù)竭_(dá)以隨機(jī)或順序Input模式打開的文件尾時,返回Boolean數(shù)據(jù)類型值True。4)FileCopy函數(shù)。FileCopy函數(shù)將指定的文件復(fù)制到指定路徑。9.2.1使用傳統(tǒng)的方式訪問文件(5)幾個重要的文件函169.2.1使用傳統(tǒng)的方式訪問文件【例9-5】使用文件函數(shù),確定file.txt文件當(dāng)前讀寫的位置,該文件的大小和長度,并將newfile1.txt文件其拷貝到D盤下,重命名為newfile1.txt。PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click '調(diào)用Loc函數(shù)事件FileOpen(1,"c:\file.txt",OpenMode.Output)MsgBox(Loc(1))FileClose(1)EndSubPrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click '調(diào)用LOF函數(shù)事件FileOpen(1,"c:\file.txt",OpenMode.Output)MsgBox(LOF(1))FileClose(1)EndSub9.2.1使用傳統(tǒng)的方式訪問文件【例9-5】使用文件函數(shù)17PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click '調(diào)用FileLen函數(shù)事件Dimstr1AsStringstr1=FileLen("c:\newfile.txt")MsgBox(str1)EndSubPrivateSubButton4_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton4.Click '調(diào)用FileCopy函數(shù)事件FileCopy("c:\newfile.txt","d:\newfile1.txt")EndSubPrivateSubButton3_Click(ByVa189.2.1使用傳統(tǒng)的方式訪問文件2.訪問隨機(jī)文件在隨機(jī)訪問模式中,文件的存取是按記錄進(jìn)行操作的,每個記錄都有記錄號并且長度全部相同。在程序的變量說明部分采用用戶自定義類型說明語句Structure…EndStructure,首先定義記錄的結(jié)構(gòu)類型,然后再將變量說明成該類型,這樣就為這個變量申請了內(nèi)存空間,用于存放隨機(jī)文件中的記錄。(1)打開和關(guān)閉文件打開隨機(jī)文件仍然調(diào)用FileOpen函數(shù),與打開順序文件不同的是使用Random模式,并且需要指明每條記錄的長度RecordLength值,即記錄中各字段長度之和,也與程序首部定義的結(jié)構(gòu)類型變量的長度相同。關(guān)閉隨機(jī)文件仍然調(diào)用FileClose函數(shù)。9.2.1使用傳統(tǒng)的方式訪問文件2.訪問隨機(jī)文件199.2.1使用傳統(tǒng)的方式訪問文件(2)讀寫操作打開隨機(jī)文件后,就可以進(jìn)行讀寫操作。隨機(jī)文件可以同時進(jìn)行寫入和讀取操作。隨機(jī)文件的寫操作調(diào)用FilePut函數(shù),其語法格式如下:FilePut(〈文件編號〉,〈變量名〉,〈記錄號〉[,〈ArrayIsDynamic〉][,〈StringIsFixedLength〉])

9.2.1使用傳統(tǒng)的方式訪問文件(2)讀寫操作209.2.1使用傳統(tǒng)的方式訪問文件【例9-6】用隨機(jī)訪問模式創(chuàng)建一個職工數(shù)據(jù)文件(employee.dat),并輸出文件內(nèi)容。Structureem '用戶自定義記錄類型DimnumAsStringDimnameAsStringDimsexAsStringEndStructurePrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_HandlesButton1.Click '輸入數(shù)據(jù)事件Dimemp()AsemDimi,nAsIntegerFileOpen(1,"c:\employee.dat",OpenMode.Random)n=InputBox("請輸入職工數(shù):") '輸入記錄個數(shù)ReDimemp(n)Fori=1Ton '依次輸入每個記錄數(shù)據(jù)emp(i).num=InputBox$("請輸入編號:")emp(i).name=InputBox$("請輸入姓名:")emp(i).sex=InputBox$("請輸入性別:")FilePut(1,emp(i),i+1) '調(diào)用FilePut函數(shù)輸入數(shù)據(jù)NextFileClose()EndSub9.2.1使用傳統(tǒng)的方式訪問文件【例9-6】用隨機(jī)訪問模219.2.1使用傳統(tǒng)的方式訪問文件PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_HandlesButton2.Click '輸出數(shù)據(jù)事件DimempAsemDimi,nAsIntegerDimstrAsStringFileOpen(1,"c:\employee.dat",OpenMode.Random)str="編號姓名性別"&Chr(13)i=1WhileNotEOF(1) '依次讀取每個記錄數(shù)據(jù)FileGet(1,emp) '調(diào)用FileGet函數(shù)輸出數(shù)據(jù)str=str&emp.num&""&&""&emp.sex&Chr(13)圖9-12隨機(jī)文件輸出i=i+1EndWhileMessageBox.Show(str) '在消息框中輸出數(shù)據(jù)FileClose()EndSub9.2.1使用傳統(tǒng)的方式訪問文件PrivateSub229.2.1使用傳統(tǒng)的方式訪問文件(3)常用對話框控件一些應(yīng)用程序常常需要打開和保存文件,以及選擇字體、顏色、打印等操作,這時需要應(yīng)用程序提供相應(yīng)的對話框,進(jìn)行操作。VB2005提供的對話框控件有:打開文件對話框控件(OpenFileDialog)、保存對話框控件(SaveFileDialog)、字體對話框控件(FontDialog)、顏色對話框控件(ColorDialog)、文件夾對話框(FolderBrowserDialog)等,在工具箱上顯示如圖所示。9.2.1使用傳統(tǒng)的方式訪問文件(3)常用對話框控件239.2.3使用System.IO命名空間訪問文件1.流的概念及其類型.NETFramework使用流來支持讀取和寫入文件??梢詫⒘饕暈橐唤M連續(xù)的一維數(shù)據(jù),包含開頭和結(jié)尾,并且其中的游標(biāo)指示了流中的當(dāng)前位置。文件和流是有區(qū)別的。文件通常表示位于磁盤上的文件和目錄,具有文件名和路徑。而流則提供讀寫后端存儲的方法,后端存儲包括磁盤、網(wǎng)絡(luò)、內(nèi)存和磁帶等。流是字節(jié)序列的抽象概念,是一個在Unix里面經(jīng)常使用的對象。可以把流當(dāng)作一個通道,程序的數(shù)據(jù)可以沿著這個通道“流”到各種數(shù)據(jù)存儲機(jī)構(gòu)(例如文件、字符串、數(shù)組或者其他形式的流等)。一般來說,流要比文件的范圍要稍廣一些,除文件流之外也存在多種流,如網(wǎng)絡(luò)流、內(nèi)存流和緩沖流等。9.2.3使用System.IO命名空間訪問文件1.流249.2.3使用System.IO命名空間訪問文件2.流的操作流的操作一般涉及三個基本方法:1)可以從流讀取。讀取是從流到數(shù)據(jù)結(jié)構(gòu)(如字節(jié)數(shù)組)的數(shù)據(jù)傳輸。2)可以向流寫入。寫入是從數(shù)據(jù)源到流的數(shù)據(jù)傳輸。3)流可以支持查找。查找是對流內(nèi)的當(dāng)前位置進(jìn)行的查詢和修改所有與I/O相關(guān)的類都位于System.IO命名空間。System.IO命名空間中提供了以下功能:1)創(chuàng)建、刪除和操作目錄及文件。2)對目錄和文件進(jìn)行監(jiān)視。3)從流中讀寫數(shù)據(jù)。4)隨機(jī)訪問文件。5)使用多種枚舉常量設(shè)置文件和目錄的操作。9.2.3使用System.IO命名空間訪問文件2.流259.2.3使用System.IO命名空間訪問文件【例9-8】使用System.IO命名空間,向C盤下名為testfile.txt文件寫入數(shù)據(jù),并讀取其文本信息,顯示到輸出窗口中。ImportsSystem '引用System命名空間ImportsSystem.IOClassForm1PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_HandlesMyBase.LoadDimswAsStreamWriter=NewStreamWriter("c:\TestFile.txt") '聲明一個StreamWriter對象swsw.Write("北京奧運(yùn)會將在") '不換行寫入數(shù)據(jù)sw.WriteLine("2008年月日舉行。") '換行寫入數(shù)據(jù)sw.WriteLine("-------------------")sw.Write("今天的日期是:")sw.WriteLine(DateTime.Now)sw.Close() '關(guān)閉對象swDimsrAsStreamReader=NewStreamReader("c:\TestFile.txt") '聲明一個StreamReader對象srDimlineAsStringDoline=sr.ReadLine() '讀取一行文本Console.WriteLine(line) '輸出到輸出窗口LoopUntillineIsNothing '循環(huán)讀取每行文本sr.Close() '關(guān)閉對象srEndSubEndClass9.2.3使用System.IO命名空間訪問文件【例9-269.2.4使用其它方法處理字符訪問文件,其實(shí)就是訪問文件中的字符串?dāng)?shù)據(jù)。程序員可以讀取、寫入字符串,通常用“&”和“+”來處理字符串連接。也可以使用String類的方法來處理字符串。String類常用的方法見表。方法名稱功能說明示例示例結(jié)果Compare比較兩個指定的字符串。String.Compare("abc","abc")String.Compare("abc","abcd")0-1Concat創(chuàng)建連接字符串。String.Concat("中華","人民共和國")"中華人民共和國"Copy復(fù)制字符串。String.Copy("你好")復(fù)制到新字符串(變量)中Equals判斷兩個字符串是否相同String.Compare("abc","abcd")String.Compare("abc","abc")FalseTrueIsNullOrEmpty判斷字符串是否為空String.IsNullOrEmpty("")String.IsNullOrEmpty("ab")TrueFalse9.2.4使用其它方法處理字符訪問文件,其實(shí)就是訪問文件279.2.4使用其它方法處理字符程序員還可以使用.NETFramework提供的方法處理String類中的字符串,功能類似于字符串函數(shù)。.NETFramework常用的處理字符串的方法見表。方法名稱功能說明示例示例結(jié)果ToUpper將字符串中的字母變成大寫Dimstr1AsStringstr1="abc"Console.WriteLine(str1.ToUpper)"ABC"ToLower將字符串中的字母變成小寫Dimstr2AsStringStr2="ABC"Console.WriteLine(str2.ToUpper)"abc"Length確定字符串中的字符數(shù)Dimstr3AsStringstr3="中國"Console.WriteLine(str3.Length)2Substring從指定位置截取字符DimstrAsStringstr="北京奧運(yùn)會"Console.WriteLine(str.Substring(2,3))"奧運(yùn)會"Insert插入新字符Console.WriteLine(str.Insert(3,"2008"))"北京2008奧運(yùn)會"9.2.4使用其它方法處理字符程序員還可以使用.NET289.2.4使用其它方法處理字符【例9-9】向C盤下file.txt文本文件中依次寫入以下文本:Unicode的前12個碼位(0到127)對應(yīng)于標(biāo)準(zhǔn)美國鍵盤上的字母和符號。顯示輸出,并可以指定截取字符、添加字符和統(tǒng)計字?jǐn)?shù)。PrivateSubInsert_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_HandlesButton1.Click'輸入文本事件FileOpen(1,"c:\file.txt",OpenMode.Output)'打開指定文件PrintLine(1,RichTextBox1.Text)'寫入文本FileClose(1)EndSubPrivateSubInput_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_HandlesButton2.Click'輸出文本事件Dimstr1AsStringFileOpen(1,"c:\file.txt",OpenMode.Input)'打開指定文件Input(1,str1)RichTextBox2.Text=str1FileClose(1)EndSub9.2.4使用其它方法處理字符【例9-9】向C盤下fil299.2.4使用其它方法處理字符PrivateSubCountCharToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByVale_AsSystem.EventArgs)HandlesCountCharToolStripMenuItem.ClickDimchAsIntegerMsgBox(RichTextBox2.Text.Length)EndSubPrivateSubSubCharToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByVale_AsSystem.EventArgs)HandlesSubCharToolStripMenuItem.ClickDimm,nAsIntegerm=InputBox("請輸入截取起始位置:")n=InputBox("請輸入截取字符數(shù):")MsgBox(RichTextBox2.Text.Substring(m,n))EndSubPrivateSubInsertCharToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByVale_AsSystem.EventArgs)HandlesInsertCharToolStripMenuItem.ClickDimiAsIntegerDimstrAsStringi=InputBox("請輸入添加字符位置:")Str=InputBox("請輸入添加字符:")RichTextBox2.Text=RichTextBox2.Text.Insert(i,str)EndSub9.2.4使用其它方法處理字符PrivateSubC309.3使用My.Computer.FileSystem對象訪問文件在VB2005中,引入了一個全新的概念——My.Computer.FileSystem對象,它提供了可簡化文件I/O的訪問方法和屬性。這一節(jié)主要介紹My.Computer.FileSystem對象訪問文件的方法。9.3使用My.Computer.FileSystem對319.3.1My.Computer.FileSystem對象簡介My命名空間是VB2005中的一項(xiàng)新功能,它提供了簡單而直觀的方法來訪問大量.NETFramework類,從而使VB程序員能夠與計算機(jī)、應(yīng)用程序、設(shè)置、資源等進(jìn)行交互。My提供了幾個完全不同的類:My.Application、My.Computer、My.Forms、My.Resources、My.Settings、My.User和My.WebServices。其中My.Computer對象提供用于處理計算機(jī)組件(如音頻、時鐘、鍵盤、文件系統(tǒng)等)的屬性。My.Computer對象可以完成許多任務(wù),例如確定遠(yuǎn)程計算機(jī)是否可用、上傳/下載文件、從剪貼板中讀取數(shù)據(jù)、將音頻保存到剪貼板等。My.Computer對象提供了許多屬性,例如Audio、Clipboard、FileSystem、Keyboard、Network等。其中My.Computer.FileSystem對象提供用于處理驅(qū)動器、文件和目錄的屬性及方法。VB2005通過通過使用My.Computer.FileSystem對象可以非常方便快捷的訪問文件,包括讀取數(shù)據(jù)、寫入數(shù)據(jù)、復(fù)制等等操作。9.3.1My.Computer.FileSystem對329.3.2My.Computer.FileSystem對象常用的屬性和方法My.Computer.FileSystem對象提供了許多屬性。見表。My.Computer.FileSystem對象還提供了許多方法。見表。屬性名說明CurrentDirectory獲取當(dāng)前目錄Drives獲取有關(guān)驅(qū)動器的信息SpecialDirectories用于訪問特殊的目錄方法名方法行為CombinePath將正確設(shè)置了格式的組合路徑作為字符串返回CopyDirectory復(fù)制目錄CopyFile復(fù)制文件CreateDirectory創(chuàng)建目錄DeleteDirectory刪除目錄DeleteFile刪除文件DirectoryExists返回一個指示目錄是否存在的布爾值RenameDirectory重命名目錄RenameFile重命名文件WriteAllBytes創(chuàng)建并寫入到二進(jìn)制文件數(shù)據(jù)WriteAllText創(chuàng)建并寫入到文本文件數(shù)據(jù)9.3.2My.Computer.FileSystem對339.3.3My.Computer.FileSystem對象的使用程序員可以使用My.Computer.FileSystem對象的屬性和方法訪問文件和目錄?!纠?-10】使用My.Computer.FileSystem對象,在C盤下新建一個名為myfile的文件夾,然后在該文件夾下新建一個名為file.txt的文本文件,并向該文件輸入數(shù)據(jù),最后輸出該文件數(shù)據(jù)。編寫事件代碼:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_HandlesButton1.Click '創(chuàng)建文件夾事件My.Computer.FileSystem.CreateDirectory("C:\myfile")EndSubPrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_HandlesButton2.Click '創(chuàng)建文件并輸入數(shù)據(jù)事件My.Computer.FileSystem.WriteAllText("C:\myfile\file1.txt","ABCDEFG",False)EndSubPrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_HandlesButton3.Click '輸出文件數(shù)據(jù)事件DimfileContentsAsStringfileContents=My.Computer.FileSystem.ReadAllText("C:\myfile\file1.txt")MsgBox(fileContents)EndSub9.3.3My.Computer.FileSystem對349.3.3My.Computer.FileSystem對象的使用【例9-11】創(chuàng)建一個類似于Word的文本編輯器,該文本編輯器包括下拉菜單、快捷菜單和工具欄??梢孕陆?、打開、關(guān)閉文檔,還可以編輯文檔,包括復(fù)制、粘貼操作。在Form1中輸入代碼:'聲明全局變量PublicfileNameAsStringPublicfileContents,filetextAsStringSubCreatefile() '新建文檔過程Form2.MdiParent=MeForm2.Text="新文檔"Form2.Show()Form2.RichTextBox1.ContextMenuStrip=Me.ContextMenuStrip1filetext=Form2.RichTextBox1.TextEndSub9.3.3My.Computer.FileSystem對359.3.3My.Computer.FileSystem對象的使用SubOpenfile() '打開文檔過程OpenFileDialog1.DefaultExt="TXT" '打開對話框默認(rèn)文件類型OpenFileDialog1.Filter="文本文件(*.TXT)|*.TXT" '設(shè)定文件類型OpenFileDialog1.ShowDialog() '調(diào)用打開文檔對話框IfOpenFileDialog1.FileName<>""ThenfileName=OpenFileDialog1.FileName '讀取文件名DimfileContentsAsStringfileContents=My.Computer.FileSystem.ReadAllText(fileName)'使用My.Computer.FileSystem對象的ReadAllText屬性從文件中讀取文本Form2.RichTextBox1.Text=fileContentsForm2.MdiParent=MeForm2.Text=fileNameForm2.Show()ElseMsgBox("沒有選擇要打開的文件名!","提示")fileName=""EndIfEndSub9.3.3My.Computer.FileSystem對369.3.3My.Computer.FileSystem對象的使用SubSavefile(ByValtextAsString) '保存過程SaveFileDialog1.DefaultExt="TXT" '保存對話框默認(rèn)文件類型SaveFileDialog1.Filter="文本文件(*.TXT)|*.TXT" '設(shè)定文件類型SaveFileDialog1.ShowDialog() '調(diào)用保存對話框IfSaveFileDialog1.FileName<>""ThenfileName=SaveFileDialog1.FileName '讀取文件名My.Computer.FileSystem.WriteAllText(fileName,Text,True)'使用My.Computer.FileSystem對象的WriteAllText屬性將文本寫入文件ElseMsgBox("沒有輸入要保存的文件名!","提示")fileName=""EndIfEndSubSubCopy()

溫馨提示

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

評論

0/150

提交評論