VB.NET打開二進(jìn)制文件用fileopen完成,打開二進(jìn)制文件的形式為:openmode.binary
創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為合肥等服務(wù)建站,合肥等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為合肥企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
讀取二進(jìn)制文件用的是fileget方法,寫入二進(jìn)制文件用的是fileput方法。
應(yīng)用示例:將一批隨機(jī)數(shù)保存在一個(gè)dat文件中,然后再將其提取到文本框中。
二進(jìn)制文件的讀寫一批隨機(jī)數(shù)的存取,程序?yàn)椋?/p>
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, i, fn As Integer
Dim s As String = ""
fn = FreeFile()
FileOpen(fn, "d:\data.dat", OpenMode.Binary)
For i = 1 To 8
x = Int(Rnd() * 100)
s = s + Str(x)
FilePut(fn, x)
Next
FileClose(fn)
TextBox1.Text = s
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim x, fn As Integer
Dim s As String = ""
fn = FreeFile()
FileOpen(fn, "d:\data.dat", OpenMode.Binary)
Do While Not EOF(fn)
FileGet(fn, x)
s = s + Str(x) + " "
Loop
FileClose(fn)
TextBox1.Text = s
End Sub
vb點(diǎn)虐 雖也有input語句,但一次只能讀取到一個(gè)變量中,可以用TextFieldParser類代替,但似乎沒以前的方便。不過比以前的更靈活。寫入文件Write還是可以用,在Microsoft.VisualBasic.FileIO中。
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
Dim?fileName?As?String?=?"E:\User?Documents\Master\My?Documents\電子閱讀\股票\table2.csv"
Using?Recrods?As?New?Microsoft.VisualBasic.FileIO.TextFieldParser(fileName)?'建立TextFieldParser對(duì)象
'MyReader.TextFieldType?=?FieldType.Delimited
Recrods.SetDelimiters(",")?'把字段分隔符設(shè)置為","
Dim?curRow()?As?String
Do?Until?Recrods.EndOfData
curRow?=?Recrods.ReadFields()?'讀取記錄行,返回字符串?dāng)?shù)組,所以不同字段類型需要自己轉(zhuǎn)換。
Debug.Print(Join(curRow,?vbTab))
Loop
End?Using
End?Sub
VB讀取dat文件需要看dat文件是如何寫成的,通常應(yīng)該是以二進(jìn)制方式來讀取。用Get語句來將數(shù)據(jù)從文件讀到變量中。
同樣將數(shù)據(jù)寫入dat文件也應(yīng)使用二進(jìn)制方式寫,用Put語句實(shí)現(xiàn)。
以下是Get語句和Put語句的使用實(shí)例:
Option?Explicit
Private?Type?Record???'?定義用戶自定義的數(shù)據(jù)類型。
ID?As?Integer
Name?As?String?*?20
End?Type
'讀取數(shù)據(jù)
Private?Sub?Command1_Click()
Dim?MyRecord?As?Record,?Position???'?聲明變量。
'?為隨機(jī)訪問打開樣本文件。
Open?"C:\TESTFILE.dat"?For?Random?As?#1?Len?=?Len(MyRecord)
'?使用?Get?語句來讀樣本文件。
Position?=?5???'?定義記錄號(hào)。
Get?#1,?Position,?MyRecord???'?讀第三個(gè)記錄。
Close?#1
Text1.Text?=?MyRecord.ID
Text2.Text?=?MyRecord.Name
End?Sub
'寫入數(shù)據(jù)
Private?Sub?Command2_Click()
Dim?MyRecord?As?Record,?RecordNumber???'?聲明變量。
'?以隨機(jī)訪問方式打開文件。
Open?"C:\TESTFILE.dat"?For?Random?As?#1?Len?=?Len(MyRecord)
For?RecordNumber?=?1?To?5???'?循環(huán)五次。
MyRecord.ID?=?RecordNumber???'?定義?ID。
MyRecord.Name?=?"My?Name"??RecordNumber???'?建立字符串。
Put?#1,?RecordNumber,?MyRecord???'?將記錄寫入文件中。
Next?RecordNumber
Close?#1
End?Sub
擴(kuò)展名是DAT的文件并不是一種標(biāo)準(zhǔn)文件。許多軟件都使用這個(gè)擴(kuò)展名,但文件含義不同。而許多數(shù)據(jù)分析軟件也用這個(gè)擴(kuò)展名保存數(shù)據(jù)。所以這要看具體的軟件情況來定。DAT文件,可以按照擴(kuò)展名來看就是DATA的意思,即數(shù)據(jù)文件,這類文件并沒有進(jìn)行絕對(duì)化的定義,例如VCD光盤中的DAT文件就可以用一般的視頻播放器打開,而QQ的DAT文件中則存儲(chǔ)了用戶信息,是無法使用常規(guī)方式打開的,只有QQ程序可以訪問。還有一些其他程序都有自己對(duì)DAT文件的定義,要通過其特殊的程序來打開與之相關(guān)聯(lián)的DAT文件。
參考: