標題:
[發問]
.READLine的用法
[打印本頁]
作者:
acdx
時間:
2014-6-6 14:41
標題:
.READLine的用法
.READLine只能依序讀取一行行的資料嗎?如果我想要讀取最後一行的資料開如何寫呢?
範例: test.txt檔:
----------------
3
4
5
(空白)
(空白)
8
ECMA-74 +
----------------
我想要讀取最後一行(即ECMA-74 +)該如何寫呢?
作者:
stillfish00
時間:
2014-6-6 16:37
回復
1#
acdx
你指的Readline應該是指用FileSystemObject的方法吧?
你可以參考這篇,
How Can I Read Just the Last Line of a Text file?
應該沒有辦法"直接"只讀檔案最後一行,但是可以一行一行讀直到取得最後一行。
不過我不知道你的困擾是不是檔案非常大,一行一行讀太慢,若是這原因,也可以一次讀完再反向找換行字元(要看你檔案的換行字元是哪一種)
作者:
GBKEE
時間:
2014-6-6 21:33
回復
1#
acdx
Option Explicit
Sub Ex()
Dim i As Integer, objFile As Object, A As Variant, E As Variant
Set objFile = CreateObject("Scripting.FileSystemObject")
Set objFile = objFile.OpenTextFile("D:\Test.txt", 1)
A = objFile.READALL
A = Replace(A, vbCr, "") '消除復位字元
A = Split(A, "ECMA-74 +")(0) '取得"ECMA-74 +"之前的串
A = Replace(A, vbLf & vbLf, vbLf) '消除空白列
A = Split(A, vbLf)
For i = 0 To UBound(A) - 1
MsgBox A(i)
Next
End Sub
複製代碼
作者:
acdx
時間:
2014-6-9 16:05
回復
3#
GBKEE
G大 我希望的是可以讀取最後一行的值,它是未知的,可能是"ECMA-74 +"也可能是"ABCD"
作者:
GBKEE
時間:
2014-6-10 07:32
回復
4#
acdx
讀取最後一行的值
是檔案的最底部的那一行嗎?
還是那一行的可能是"ECMA-74 +"也可能是"ABCD" ,不是檔案的最底部的那一行?
這字串有固定是那些字串嗎?
作者:
acdx
時間:
2014-6-10 15:27
回復
5#
GBKEE
是檔案的最底部一行
它可能的字串有3種:ECMA-74+, Normal, frequency
作者:
GBKEE
時間:
2014-6-10 20:30
回復
6#
acdx
試試看
Option Explicit
Sub Ex()
Dim i As Integer, objFile As Object, A As Variant
Set objFile = CreateObject("Scripting.FileSystemObject")
Set objFile = objFile.OpenTextFile("D:\Test.txt", 1) '開啟文字檔
A = objFile.READALL '讀取文字檔全部字串
Do While InStr(A, vbCrLf) Or InStr(A, vbLf & vbLf)
A = Replace(A, vbCrLf, vbLf) '消除復位字元
A = Replace(A, vbLf & vbLf, vbLf) '消除空白列
Loop
If Mid(A, Len(A)) = vbLf Then A = Mid(A, 1, Len(A) - 1) '清除最後字元是換行字元。
A = Split(A, vbLf) '檔案中有資料的行,置入陣列
MsgBox A(UBound(A)) '檔案的最後有資料的那一行
End Sub
複製代碼
作者:
198188
時間:
2024-5-2 14:10
回復
1#
acdx
你想在哪個存儲格内顯示,就直接輸入下面的公式
如果數據在A欄
=LOOKUP(1,0/(A:A<>""),A:A)
如果數據在B欄
=LOOKUP(1,0/(B:B<>""),B:B)
如此類推
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)