導航:首頁 > 文件管理 > vb文件號最大可以取多少

vb文件號最大可以取多少

發布時間:2023-06-14 21:30:07

A. VB如何讀取大的文本文件

記得好象一般上限是2G,再要大的話就難解決了,網上也貼過好多帖子,沒幾個想得出好辦法..不知道樓主文件多大啊?
你後面刪掉了讀取的語句,當然可以顯示出「打開成功」
你要在「打開成功」後加個DoEvents以前的代碼也可以顯示出來.

我一直是用二進制打開方式操作那些給人看的文本文件,一次性讀入所有的內容,從5M的文件開始有點吃力了.

寫點代碼吧,你拿去試下,看對你有幫助不.
按你的意思,邊讀文件,邊將文件內容顯示出來
你需要畫一RichTextBox,兩個按鈕
RichTextBox的名稱為RichText1, ScrollBars=2
兩個Command名稱
Command1 Caption="Read File" 開始讀文件
Command2 Caption="Stop" 停止讀文件
讀取文件為"C:\1.txt"

窗體代碼:

Dim iStop As Integer

Private Sub Command1_Click()
iStop = 0
Dim Data1 As String
Dim Fn As Long
Dim lFileLong As Double
Dim lReadL As Double
Dim lReadLs As Double
Dim iSpeed As Integer
iSpeed = 10
lReadL = 1024
lReadL = lReadL * iSpeed
lReadLs = 0
RichText1.Text = ""
Fn = FreeFile
Open "c:\1.txt" For Binary As #Fn
lFileLong = LOF(Fn)
Do While lReadLs < lFileLong And iStop = 0
If lFileLong - lReadLs <= lReadL Then lReadL = lFileLong - lReadLs
Seek #Fn, lReadLs + 1
DoEvents
Data1 = Input$(lReadL, #Fn)
lReadLs = lReadLs + lReadL
RichText1.Text = RichText1.Text & Data1
DoEvents
Loop
Close #Fn
MsgBox "讀入文件完畢!"
End Sub

Private Sub Command2_Click()
iStop = 1
End Sub

補充說明:
iSpeed值可以隨你設,最小為1,最大65535,意思就是每次讀入數據的多少,iSpeed=1的時候每次讀入1024 Bytes數據,並將其顯示在RichTextBox,iSpeed越小,讀取間隔越短,但是讀入效率低,你可以比較隨意的拖動滾動條到你想瀏覽的地方;iSpeed越大,讀取間隔越長,把文件完整讀入所需的時間相對短,但是過大的話你就不容易拖動滾動條.
你可以在讀取文件的同時瀏覽已經讀入的文本數據.
我沒測試最大能讀多大的文件..也不知道你需要讀多大的文件.
(理論上我猜測越讀到後面越慢.因為RichTextBox.Text的屬性操作越到後面需要的內存越大)

補充:
以下代碼改下,應該可以滿足要求.
Dim iStop As Integer

Private Sub Command1_Click()
Dim sfFileName As String '文件名
Dim sReadData As String
Dim Fn As Long
Dim lFileLong As Double
Dim lReadL As Double
Dim lReadLs As Double
Dim iSpeed As Integer
sfFileName = App.Path & "\ywtest.tfm"
iSpeed = 5
lReadL = 1024
lReadL = lReadL * iSpeed
lReadLs = 0
sReadData = ""

Fn = FreeFile
Open sfFileName For Binary As #Fn
lFileLong = LOF(Fn)

Do While lReadLs < lFileLong And iStop = 0
If lFileLong - lReadLs <= lReadL Then lReadL = lFileLong - lReadLs
Seek #Fn, lReadLs + 1
DoEvents
sReadData = sReadData & Input$(lReadL, #Fn) '將上次未完成處理的字元和本次讀取的字元合並在一起
lReadLs = lReadLs + lReadL
Call ListAddItem(sReadData) '調用函數處理所得的字元串
DoEvents
Loop

Close #Fn
Call ListAddItem(sReadData, True) '處理未完成處理的最後剩餘字元

MsgBox "讀入文件完畢!"
End Sub

Private Sub Command2_Click()
iStop = 1
End Sub

'將讀出的行添加到列表
'變數說明:
'sDealStr (傳地址) 讀取出來所處理的字元串
'isWithOutEnter 如果字元串結尾沒有回車,是否將剩餘字元判斷為一行(用於文件最後一行有時沒有回車換行的情況)
Private Sub ListAddItem(ByRef sDealStr As String, Optional isWithOutEnter As Boolean = False)
Dim ln As Double '查找回車換行字元儲存的地址
Dim lnLast As Double '上一次的地址
Dim longDealStr As Double '字元串長度
Dim sFindStr As String '一行字元的保存變數
longDealStr = Len(sDealStr)
ln = 0
lnLast = -1

Do
ln = InStr(ln + 1, sDealStr, vbCrLf) '在sDealStr中查找回車換行符
If ln = 0 Then
If isWithOutEnter = False Then '不提取剩餘字元,直接退出
Exit Do
Else '准備將剩餘字元提取
ln = longDealStr + 1
End If
End If
sFindStr = Mid(sDealStr, lnLast + 2, ln - lnLast - 2) '提取一行字元
List1.AddItem sFindStr '添加到列表(此處你可以調用你的代碼處理sFindStr,即你的linestr
lnLast = ln
DoEvents
Loop While ln < longDealStr '如果查找到地址小於總長度則繼續查找下一個

If longDealStr - lnLast - 1 > 0 Then
If lnLast > 0 Then '如果最後一次的地址存在則將該地址之前的字元全部去掉
sDealStr = Right(sDealStr, longDealStr - lnLast)
'此時sDealStr只剩餘沒處理完的字元
End If
Else '如果地址結束則直接清空
sDealStr = ""
End If
End Sub

在Form里畫一個ListBox和兩個Command

B. vb里的文件號最大取值是多少

511,書上說的

C. VB編程中的文件號是怎麼回事

文件號是你自己定義的一個號碼,無所謂常用與否。實際上最常用的無非是1、2、3、4等等數字。建議使用1~255之間的號碼,也可以使用256~511之間的。可以使用FreeFile函數返回一個空閑文件號。
舉例:open "C:\WINDOOWS\System32\cmd.exe" for input as 1

閱讀全文

與vb文件號最大可以取多少相關的資料

熱點內容
linux家用文件伺服器 瀏覽:64
三星手機的提示app有什麼作用 瀏覽:262
jsp按鈕加圖片 瀏覽:215
哪些app可以領取課程體驗包 瀏覽:310
網站租賃價格一般多少錢 瀏覽:609
qq空間舊版本412 瀏覽:502
學生選課資料庫怎麼寫 瀏覽:9
html5轉成jsp 瀏覽:440
貼吧封禁發帖教程 瀏覽:284
wps文件怎麼修改後綴變成excel 瀏覽:626
斐波那契資料庫怎麼用 瀏覽:175
php掃描目錄下文件並選擇刪除 瀏覽:711
服裝直播哪個網站好 瀏覽:22
微信預約掛號費如何交 瀏覽:405
定製衣服的哪個網站 瀏覽:560
安卓phonegap 瀏覽:346
動畫紀錄片用哪個app 瀏覽:673
手機微信怎麼傳輸應用程序 瀏覽:661
兩個java傳遞文本 瀏覽:365
appale 瀏覽:37

友情鏈接