導航:首頁 > 文件管理 > 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文件號最大可以取多少相關的資料

熱點內容
預防醫學如何轉行做大數據 瀏覽:234
pdf文件變藍 瀏覽:309
怎麼在pdf文件上面用k寶簽名 瀏覽:213
如何知道表格里數據後面有空格 瀏覽:720
gee引擎更新系統找不到指定文件 瀏覽:802
貝殼網的數據刪除了如何找回 瀏覽:509
華為榮耀6x怎麼切換網路 瀏覽:418
手機里的pdf文件在哪放 瀏覽:889
java版貪吃蛇畢業論文 瀏覽:989
微信公共號郵箱 瀏覽:415
圖片寬度代碼 瀏覽:460
有哪些好用的相見恨晚的app 瀏覽:664
cs部分文件找不到 瀏覽:369
小工工具 瀏覽:681
pat文件怎麼做 瀏覽:744
opensuse11內核版本 瀏覽:62
java後台校驗框架 瀏覽:379
編程怎麼做3d生存游戲 瀏覽:955
word使用教程下載 瀏覽:295
電腦文件平鋪圖片默認大小 瀏覽:115

友情鏈接