VB讀寫檔案

2021-04-15 21:19:24 字數 4876 閱讀 8855

vb讀寫檔案要用到以下語句:

1、open語句開啟檔案。

2、讀檔案使用line input、input #,(以上為文字方式)和get(以上為二進位制方式)。

3、寫檔案使用print #、write(以上為文字方式)和put(以上為二進位制方式)。

4、close語句關閉檔案

5、二進位制方式下移動檔案位置使用seek語句。

所有這些語句在vb的幫助中都有詳細說明和例子。

文字檔案的示例:

open "testfile" for output as #1 ' 開啟輸出檔案。

print #1, "this is a test" ' 將文字資料寫入檔案。

print #1, ' 將空白行寫入檔案。

print #1, "zone 1"; tab ; "zone 2" ' 資料寫入兩個區(print zones)。

print #1, "hello" ; " " ; "world" ' 以空格隔開兩個字串。

print #1, spc(5) ; "5 leading spaces " ' 在字串之前寫入五個空格。

print #1, tab(10) ; "hello" ' 將資料寫在第十列。

' 賦值 boolean、date、null 及 error 等。

dim mybool, mydate, mynull, myerror

mybool = false : mydate = #february 12, 1969# : mynull = null

myerror = cverr(32767)

' true、false、null 及 error 會根據系統的地區設定自動轉換格式。

' 日期將以標準的短式日期的格式顯示。

print #1, mybool ; " is a boolean value"

print #1, mydate ; " is a date"

print #1, mynull ; " is a null value"

print #1, myerror ; " is an error value"

close #1 ' 關閉檔案。

讀檔案示例

使用 line input # 語句從順序檔案中讀入一行資料,並將該行資料賦予乙個變數。本示例假設 testfile 檔案內含數行文字資料。

dim textline

open "testfile" for input as #1 ' 開啟檔案。

do while not eof(1) ' 迴圈至檔案尾。

line input #1, textline ' 讀入一行資料並將其賦予某變數。

debug.print textline ' 在除錯視窗中顯示資料。

loop

close #1 ' 關閉檔案。

你也可以在我們的「磁碟、檔案和目錄」欄目中找到許多這方面的問題和例子。

get和put語句也可以讀寫多個位元組,可以把每次讀寫的內容放在乙個位元組變數陣列中,以提高程式速度。例如:

dim dsx() as byte '為位元組陣列,用來儲存讀寫內容

dim readfileno, writefileno as integer

'讀寫檔案號

const unit = 100000 '讀寫塊的大小

open sourcefilename for binary access read as 1

writefileno = freefile

open targetfilename for binary access write as writefileno

redim dsx(unit) as byte '設定儲存位元組陣列的大小

get #readfileno, 100, dsx()

put #writefileno, 1, dsx()

close writefileno, readfileno

open "test.txt" for output as 1

data1.recordset.movefirst

do while not data1.recordset.eof

print #1, data1.recordset("欄位1"); ", "; ' 不換行

print #1, format(data1.recordset("欄位2"), "###.##")

data1.recordset.movenext

loop

close #1

commondialog.action是用來定義對話方塊的型別的

action=1 開啟檔案對話方塊

action=2 另存為檔案對話方塊

action=3 顏色對話方塊

action=4 字型對話方塊

action=5 列印對話方塊

開啟文字檔案是不少程式必須處理的問題。如何更有效地開啟文字檔案應該是乙個值得研究的課題。為此,筆者將自己蒐集到的幾種方法無私地奉獻出來(-_-),供各位參考。同時期盼大家也來參與,借vb程式設計樂園這塊寶地互相交流。如您有這份心,土人在這裡先說聲謝謝!

下面所舉的例子均假設f盤下有乙個名為d.txt的文字檔案,若需要嘗試這些例子請作相應的改動。

方法一:

用定長的string變數獲取文字內容。由於定長string變數支援的下界為65400,所以在開啟超過32k位元組的檔案時超出部分的位元組將無法獲取:

private sub command1_cliack()

dim sa as string * 65400 '宣告定長string變數

open "f:/d.txt" for binary as #1 '用二進位制開啟檔案

get #1, , sa '用get語句從檔案中獲取位元組

text1 = sa '顯示開啟的檔案

close #1 '關閉檔案

end sub

方法二:

先宣告一字串變數,然後用空格填充字串,使變數大小與檔案大小一致,再通過get語句將檔案全部資料儲存到變數中,從而達到獲取整個檔案位元組數的目的。此法可以開啟大於32k的檔案,但應該注意的是,裝載檔案的容器必須能裝載大於32k的檔案,下例用richtextbox控制項顯示開啟的檔案:

private sub command1_click()

dim sa as string

open "f:/d.txt" for binary as #1

sa = space(lof(1)) '用空格填充sa變數

get #1, , sa '用get語句獲取檔案全部內容

richtextbox1.text = sa

close #1

end sub

方法三:

用strconv函式將檔案的控制字串資料和unicode碼之間進行轉換,從而達到開啟檔案的目的。可開啟任意大小檔案。此法筆者曾有一篇文章談及,這裡再給乙個簡單例子:

private sub command1_click()

open "f:/d.txt" for input as #1

richtextbox1.text = strconv(inputb$(lof(1), 1), vbunicode)

close #1

end sub

方法四:

用shell語句直接調出windows的記事本,給個檔名即可輕而易舉地開啟文字檔案。此法適合於開啟程式的readme檔案(注意:在可執行檔案和要開啟的文字檔案之間要有空格):

shell "notepad.exe f:/d.txt",vbnormalfucus

方法五:

用richtextbox控制項自身的loadfile屬性開啟檔案:

richtextbox1.loadfile "f:/d.txt", rtftext

dim nfile as integer, strtmp as string

dim artmp() as string

nfile = freefile

open 文字檔案全路徑名 for input as #nfile

do while not eof(nfile)

line input #nfile, strtmp

artmp=split(strtmp,分隔符) '不知道你分隔符是空格還是tab?

分析該陣列(artmp(0)對應第乙個字段,依次類推)

loop

close #nfile

'假設要得到多個空格分隔的內容

dim str1 as string

dim astr1() as string,astr2() as string

dim i as long

open "c:/tmp.txt" for input as 1

str1 = strconv(inputb$(lof(1), 1), vbunicode)

astr1 = split(str1 , vbcrlf)'以回車換行符分割

for i=0 to ubound(astr1)

strline=astr1(i)

'strline為一行的字串

'多個空格替換為乙個

while not instr(strline," ")=0

strline=replace(strline," "," ")

astr2=split(str1 , " ")

'遍歷astr2得到

wend

next

dim str as string

dim arr() as string

open "c:/txtfile.txt" for input as #1

line input #1,str

arr=split(str," ")

....'處理過程

close #1

VB 讀寫檔案

引用 open f new.txt for input as 1 dim b as string b strconv inputb lof 1 1 vbunicode open 開啟檔案的路徑 for 開啟方式 這裡是讀取,下面的是寫入和建立 as 檔案號 close 1 以上為讀取檔案,以下為寫入...

VB讀寫TXT檔案

private subcommand1 click 讀檔案 open d a.txt for inputas 1dim lines asstring dimnextline asstring dimi asinteger dowhile noteof 1 onerror resume next li...

vb6 讀寫檔案

write file dim nhandle as integer,fname as string fname d 1.txt nhandle freefile open fname for output as nhandle print nhandle,0 print nhandle,2 clos...