vb里面怎么读取TXT文档里面的内容

angloy 2004-12-25 07:18:17
想把txt文档里面的内容一行一行的读取出来,怎么读取,以前记得可以把TXT文档当作是数据库来处理就可以了,但是具体怎么操作不记得了,请教高手!!!!谢谢
...全文
1697 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
angloy 2004-12-27
  • 打赏
  • 举报
回复
很谢谢各位,我也去看过MSDN的语法了。open ,input , output , print的语法我也已经知道了。
另外我觉得用tztz520(午夜逛街) 的数据库方法去读写也是一个办法。:)
aohan 2004-12-26
  • 打赏
  • 举报
回复
////还想请教一下,Open "e:\readme.txt" For Input As #1 是什么意思?特别是input AS #1,为什么要这样写?有什么参考书可以看一下?


可以参传统文件的读取,或查看MSDN中的 Open 语句

Line Input # 语句


从已打开的顺序文件中读出一行并将它分配给 String变量。

语法

Line Input #filenumber, varname

Line Input # 语句的语法具有以下几个部分:

部分 描述
filenumber 必要。任何有效的文件号。
varname 必要。有效的 Variant 或 String 变量名。


说明

通常用 Print # 将 Line Input # 语句读出的数据从文件中写出来。

Line Input # 语句一次只从文件中读出一个字符,直到遇到回车符 (Chr(13)) 或回车–换行符 (Chr(13) + Chr(10)) 为止。回车–换行符将被跳过,而不会被附加到字符串上。


#是你打开的文件号 范围是1~511
StarLover 2004-12-26
  • 打赏
  • 举报
回复
同意楼上的
leongwong 2004-12-26
  • 打赏
  • 举报
回复
Dim tempFSO As New FileSystemObject, tempTs As TextStream
Dim Rows As Integer, strText As String, intJSQ As Integer

Rows = 10 '赋行值

Set tempTs = tempFSO.OpenTextFile(App.Path + "\****.txt", 1)

For intJSQ = 1 To Rows
strText= Trim(tempTS.ReadLine) '取出内容
Next intJSQ
StarLover 2004-12-26
  • 打赏
  • 举报
回复
helanshan(C++)
to:StarLover(DreamInWind) ( )
你再仔细看看..是循环读取..
******************************
确实是循环读取,但是,while not EOF(1)是读到该行的换行符
也就是说,如果文件是有2行或者更多,则只读取第1行!
fengyetianshi 2004-12-26
  • 打赏
  • 举报
回复

'文件打开的方法↓ 这是一行行读取直到读完文本文件所有内容!
private sub command1_click()
dim readtext as string
open "c:\try.txt" for input as #1
while not EOF(1)
line input #1 , readtext
text1.text=text1.text & readtext &vbcrlf
wend
'文件关闭的方法
close #1
'文件打开,或写入后一定要使用关闭的方法关闭文件,否则有可能造成文件丢失等错误
End Sub

'以下是判断文件是否存在的代码↓
Private Sub Command1_Click()
Dim FileName As String
FileName = "e:\try.txt"

If Dir(FileName) <> "" Then
MsgBox FileName & "存在"
Kill (FileName) '如果想删除它,加上这句!
MsgBox "文件以删除"
Else
MsgBox FileName & "不存在"
'如果想创建加上以下语句↓
Open FileName For Append As #1 '以不覆盖写的方式打开文件
Print #1, Text1.Text
Close #1
MsgBox "文件写入完毕,请去" & FileName & "下查看"
End If
End Sub

tztz520 2004-12-26
  • 打赏
  • 举报
回复
'也可以使用ADO来读取.
首先引用microsoft ActiveX Data Objects 2.0 Library

Private Sub Command1_Click()
Dim strConn As String
Dim pubConn As New ADODB.Connection
Dim rsTable As New ADODB.Recordset

strConn = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & "Dbq=;" & "Extensions=asc,csv,tab,txt;" & "Persist Security Info=False"
pubConn.Open strConn
rsTable.Open "Select * From F:\ABC.txt ", pubConn, adOpenDynamic, adLockPessimistic

Do While Not rsTable.EOF
Debug.Print rsTable.Fields(0).Value '这里读出每一行数据
rsTable.MoveNext
Loop
End Sub

dongge2000 2004-12-26
  • 打赏
  • 举报
回复
TO: angloy(烂柯遗梦)
呵呵,看看变量名就知道了,这是我刚学VB时抄的,一直没用也没改,用第一个好了,FSO还得引用其它东西。
wfhlxl 2004-12-25
  • 打赏
  • 举报
回复
use ado 2.0 reference msdn ado 2.0 help article
helanshan 2004-12-25
  • 打赏
  • 举报
回复
to:StarLover(DreamInWind) ( )
你再仔细看看..是循环读取..
******************************
还想请教一下,Open "e:\readme.txt" For Input As #1 是什么意思?特别是input AS #1,为什么要这样写?有什么参考书可以看一下?
文件打开格式:
open 文件路径 for 输入输出方式 AS #文件号
input(顺序输入)
angloy 2004-12-25
  • 打赏
  • 举报
回复
dongge2000(秋日私语:非[版务].灌!) ,
Dim u As Object
Dim X As TextStream
Set u = CreateObject("scripting.filesystemobject")
Set X = u.OpenTextFile(pFile, ForReading, True)
FsoRead = X.ReadAll
Exit Function
你的方法我曾经试过,但是好像对象里面没有TEXTSTREAM,以至于无法读出数据,谢谢
ryuginka 2004-12-25
  • 打赏
  • 举报
回复
fso
angloy 2004-12-25
  • 打赏
  • 举报
回复
呵呵,谢谢各位,还想请教一下,Open "e:\readme.txt" For Input As #1 是什么意思?特别是input AS #1,为什么要这样写?有什么参考书可以看一下?
Taylor.tian 2004-12-25
  • 打赏
  • 举报
回复
朋友
Private Sub Command1_Click()
Open "e:\readme.txt" For Input As #1
while not EOF(1)
line input #1 , readtext
text1.text=text1.text & readtext &vbcrlf
wend
Close #1
End Sub
StarLover 2004-12-25
  • 打赏
  • 举报
回复
crysbaby(永远) 的方法有点问题,那种读法只能读取文件中的一行,如果要读取第二行就还要再写一句line input了。感觉很麻烦~~~
江语 2004-12-25
  • 打赏
  • 举报
回复
这是读取指定行的内容↓
Private Sub Command1_Click()
Dim s
Dim ls_Content
Open "e:\readme.txt" For Input As #1
s = StrConv(InputB(LOF(1), #1), vbUnicode)
Close #1
ls_Content = Split(s, Chr(13))
MsgBox ls_Content(2) '读第二行
End Sub
achinacracker 2004-12-25
  • 打赏
  • 举报
回复
open "c:\123.txt" for binary as #1
text1.text=input(lof(1),1)
close #1
江语 2004-12-25
  • 打赏
  • 举报
回复
添加一个按钮,一个文本框

'文件打开的方法↓ 这是一行行读取直到读完文本文件所有内容!
private sub command1_click()
dim readtext as string
open "c:\try.txt" for input as #1
while not EOF(1)
line input #1 , readtext
text1.text=text1.text & readtext &vbcrlf
wend
'文件关闭的方法
close #1
'文件打开,或写入后一定要使用关闭的方法关闭文件,否则有可能造成文件丢失等错误
End Sub

'以下是判断文件是否存在的代码↓
Private Sub Command1_Click()
Dim FileName As String
FileName = "e:\try.txt"

If Dir(FileName) <> "" Then
MsgBox FileName & "存在"
Kill (FileName) '如果想删除它,加上这句!
MsgBox "文件以删除"
Else
MsgBox FileName & "不存在"
'如果想创建加上以下语句↓
Open FileName For Append As #1 '以不覆盖写的方式打开文件
Print #1, Text1.Text
Close #1
MsgBox "文件写入完毕,请去" & FileName & "下查看"
End If
End Sub
dongge2000 2004-12-25
  • 打赏
  • 举报
回复
'引 用:Microsoft Scripting Runtime

Function FsoRead(ByVal pFile As String) As String
On Error Resume Next
Dim u As Object
Dim X As TextStream
Set u = CreateObject("scripting.filesystemobject")
Set X = u.OpenTextFile(pFile, ForReading, True)
FsoRead = X.ReadAll
Exit Function
End Function
dongge2000 2004-12-25
  • 打赏
  • 举报
回复
'调用方法:ReadFile(文件的路径和文件名)
Function ReadFile(pFile As String) As String
Dim fN As Integer
fN = FreeFile
Open pFile For Binary Access Read As #fN
ReadFile = Space(FileLen(pFile))
Get #fN, , ReadFile
Close #fN
End Function

7,788

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧