哪吒2之魔童闹海|哪吒2之魔童归来免费观看|哪吒2在线观看|哪吒2魔童闹海电影免费观看|哪吒2免费观看完整版大电影|哪吒1免费观看完整版

新疆軟件開發(fā)

本站首頁(yè) 軟件開發(fā) 成功案例 公司新聞 公司簡(jiǎn)介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> .Net技術(shù) >> 文章正文

基礎(chǔ)學(xué)習(xí):VB.NET隨機(jī)文件的操作方法

           訪問文件中的字節(jié)構(gòu)成相同的一些記錄,每個(gè)記錄包含一個(gè)或多個(gè)字段,對(duì)于一個(gè)字段的記錄對(duì)應(yīng)于任一標(biāo)準(zhǔn)類型,隨機(jī)訪問文件中的所有記錄都必須具有相同長(zhǎng)度,如果實(shí)際字符串包含的字符少于將它寫入其中的字符串元素的固定長(zhǎng)度,則 Visual Basic 用空白(字符代碼 32)填充記錄中的尾隨空格。如果該字符串長(zhǎng)于字段大小,則 Visual Basic 截?cái)嗨?/P>

示例:用戶定義數(shù)據(jù)類型:
Structure Person
Public ID As Integer
Public MonthlySalary As Decimal
<VBFixedString(15)> Public Name As String
<VBFixedString(2)> Public Sex As String
End Structure
其中VBFixedString用于定義字符串為固定長(zhǎng)度的字符串。
在打開一個(gè)文件進(jìn)行隨機(jī)操作訪問前,應(yīng)該定義一個(gè)類型該類型對(duì)應(yīng)該文件已包含或未包含的記錄。
打開要進(jìn)行隨機(jī)訪問的文件:
FileOpen 函數(shù):FileOpen(FileNumber, FileName, OpenMode.Random, , , RecordLength)
FileNumber 和 FileName 分別指定要打開的文件的編號(hào)和文件名。RecordLength 以字節(jié)為單位指定每條記錄的大小。如果 RecordLength 小于寫入文件的記錄的實(shí)際長(zhǎng)度,則會(huì)生成錯(cuò)誤。
示例:打開隨機(jī)訪問的文件。
Dim FileNum as Integer ,RecLength as Long, Aperson as Person
‘計(jì)算記錄的長(zhǎng)度
RecLength=Len(APerson)
‘獲得可用的文件號(hào)
FileNum=FreeFile()
‘打開文件
FileOpen(FileNum,”c:\example.txt”,OpenMode.random,,,Reclenght)
打開文件之后就可以把記錄讀入變量中,使用FileGet函數(shù)。
示例:從文件中讀取第一條記錄
Dim FileNum as Integer ,RecLength as Long, Aperson as Person
RecLength=Len(APerson)
FileNum=FreeFile()
FileOpen(FileNum,”c:\example.txt”,OpenMode.random,,,Reclenght)
FileGet(FileNum,Aperson,1);
Console.WriteLine(Aperson.Id)
Console.WriteLine(Aperson.Name)
Console.WriteLine(Aperson.Sex)
Console.WriteLine(Aperson.MonthlySalary)
FileClose(FileNum)


寫入記錄:通過FilePut函數(shù)來(lái)替換已經(jīng)存在的記錄或新增記錄
示例:寫入五條記錄到文件中:
   ‘自定義數(shù)據(jù)類型

Structure Person 
Public ID As Integer
Public Name As String
End Structure

Sub WriteData()
Dim MyRecord As Person
Dim recordNumber As Integer 
’ 隨機(jī)方式打開.
FileOpen(1, "C:\example.txt", OpenMode.Binary)
For recordNumber = 1 To 5 ’ 
MyRecord.ID = recordNumber ’ Define ID.
MyRecord.Name = "My Name" & recordNumber ’創(chuàng)建一個(gè)字符串
FilePut(1, MyRecord) ’ 寫入文件
Next recordNumber
FileClose(1)
End Sub
以上代碼實(shí)現(xiàn)了隨機(jī)訪問的方式打開文件,并寫入記錄。

 

     二進(jìn)制文件的操作

打開要進(jìn)行二進(jìn)制訪問的文件 
FileOpen(FileNumber, FileName, OpenMode.Binary)
關(guān)閉要進(jìn)行二進(jìn)制訪問的文件 
FileClose(FileNumber)
如果保持較小的文件大小很重要,則采用二進(jìn)制訪問。因?yàn)槎M(jìn)制訪問不要求固定長(zhǎng)度的字段,所以類型聲明可以省略字符串長(zhǎng)度參數(shù)。這使得以通過生成變長(zhǎng)記錄來(lái)節(jié)省磁盤空間。使用二進(jìn)制型訪問的類型定義為:

Structure Person
dim ID As Integer
dim Name As String
dim MonthlySalary As Decimal 
dim Sex As String
End Structure
使用變長(zhǎng)字段的二進(jìn)制輸入/輸出的缺點(diǎn)是無(wú)法隨機(jī)訪問記錄,而必須按順序訪問它們才能了解每條記錄的長(zhǎng)度。仍可直接轉(zhuǎn)到文件中的指定字節(jié)位置,但是如果字段是變長(zhǎng)的,則不知道哪個(gè)記錄位于哪個(gè)字節(jié)處。 

作者:未知 | 文章來(lái)源:未知 | 更新時(shí)間:2008-1-15 16:40:44

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    如何在VB.net錄入驗(yàn)證?
    基礎(chǔ)學(xué)習(xí):VB.NET順序文件的操作方法
    VB.NET語(yǔ)法基礎(chǔ)知識(shí)學(xué)習(xí)
    VB.NET完善的面向?qū)ο笾С?/a>
    VB.NET對(duì)象的廣泛應(yīng)用
    VB.NET公共運(yùn)行時(shí)的環(huán)境
    VB.NET字符數(shù)據(jù)類型和其他數(shù)據(jù)類型
    多線程技術(shù)在.net中是如何應(yīng)用的
    軟件技術(shù)
    · 開發(fā)語(yǔ)言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫(kù)開發(fā)
    最新文章  
    ·.net技術(shù) asp.net MVC3 Vi
    ·.net將視頻文件格式轉(zhuǎn)換成
    ·NET Framework 2.0 Servic
    ·如何動(dòng)態(tài)修改winform的app
    ·asp,net軟件結(jié)構(gòu)設(shè)計(jì)和相關(guān)
    ·學(xué)習(xí)怎樣使用ASP.NET中的虛
    ·,net基礎(chǔ)類的學(xué)習(xí):system
    ·.net學(xué)習(xí):c#事件的深入分
    ·Facade Pattern學(xué)習(xí)總結(jié)
    ·C#如何設(shè)置或者獲取目錄的
    ·如何使用XSL來(lái)定義ASP.NET
    ·理解WCF Data Contract契約
    ·如何能在.net2.0開發(fā)的控件
    ·模式怎樣使用,講解模式的
    ·如何解決Menu菜單被frame遮
    關(guān)于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) www.pg11qqq.com All Rights Reserved 新ICP備14003571號(hào)
    新疆軟件開發(fā)總機(jī):0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000