2 回答

TA貢獻(xiàn)1817條經(jīng)驗 獲得超6個贊
fileContent = Space(LOF(fileNum))
只是為了給fileContent這個字符串申請存放"C:\form.txt"這個文件內(nèi)容的空間,
如果不加這句,你的字符串變量fileContent就會因為沒地方放文件內(nèi)容而報錯
你如果只是想顯示文件的一行的話,可以像下面這樣
Private Sub Command1_Click()
Dim fileNum As Integer
Dim fileContent As String
fileNum = FreeFile
Open "C:\form.txt" For Binary As #fileNum
Line Input #fileNum, fileContent
Close fileNum
Text1.Text = fileContent
End Sub
如果想對文件的每行進(jìn)行單獨處理的話就只需將line input這句放在do..loop until eof(filenum)這個循環(huán)中

TA貢獻(xiàn)1802條經(jīng)驗 獲得超6個贊
因為打開文件的模式是 Binary ,在 Get #fileNum, , fileContent 那兒,
是按“輸入變量的值”占用的空間來決定讀取多少內(nèi)容。
fileContent 是變長字符串,它的初始長度是0,也就是一個空串。
如果不對fileContent進(jìn)行一個“初始化”的操作,那么它在Get語句中,只“讀取”0字節(jié)內(nèi)容。
簡單地說,就是什么東西都不會讀取。
因此,先讓fileContent的“長度”為文件的字節(jié)數(shù),
在Get語句那兒,就會把整個文件內(nèi)容讀入fileContent中。
這個是按“字符個數(shù)”來讀取的,最少會讀取 len(fileContent)字節(jié)。
如果內(nèi)容全是西文的,字節(jié)數(shù)跟字符數(shù)是相同的。
但是,如果文件內(nèi)容中有“中文字符”,那么讀取的字節(jié)數(shù)就會增加(當(dāng)然最多是文件長度)。
你這段代碼的作用,是把整個文件讀取到內(nèi)存(在fileContent的值中),
然后,按“每一行”進(jìn)行一次拆分,形成一個數(shù)組。
最后,這個數(shù)組的每一個元素,就是文件中的每一行的內(nèi)容。
只是這個方法有一點小BUG:
如果文件內(nèi)容中有中文、并且以vbCrLf結(jié)束,最后一個元素會是一串空格。
如果文件內(nèi)容中有中文但結(jié)束處不帶vbCrLf,則“最后一行”就會多出一些空格來。
添加回答
舉報