VB达人请进,关于VB引入TXT文件的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB达人请进,关于VB引入TXT文件的问题相关的知识,希望对你有一定的参考价值。
小弟想在VB中引入一个TXT文件,并用VB对TXT文件中的数据进行处理,应该怎样编码?
急用,谢谢~
语法格式如下:
Open <文件名> For <打开方式> As # <文件号> [ Len = 缓冲区大小 ]
其中:
●Open、For、As、Len等是VB关键字。
●文件名:指定打开的文件名(文件名用字符串表示),包括盘符、路径、文件主名及扩展名。例如:”E:\MF\Test.txt”。
●打开方式方式:指定文件的打开方式,打开文件后,只能按指定的方式进行一种操作。打开一个顺序文件有三种方式可选:
◆Input:打开文件后,从文件中读取数据
◆Output:打开文件后,向文件中写入数据,即重写一个顺序文件
◆Append:打开文件后,向文件末尾添加数据
若指定Input方式,则当指定文件不存在时产生一个错误;若指定Output或Append方式,则当文件不存在时建立该文件,文件已存在时写入的数据,前者覆盖,后者追加。所以Open具有建立和打开文件的双重功能。
对同一文件用一种方式打开后,在关闭之前,不能再以另一种方式打开。
●文件号:VB应用程序每打开一个文件,必须指定一个文件号,且不能与其它打开的文件占用的文件号重复。文件号的范围是1 - 511之间的整数。打开文件后,指定的文件号就与该文件相关联,程序通过文件号来对文件进行读、写操作,直到关闭文件。关闭文件后,该文件号被释放,可供打开其他文件时使用。
如果在程序中已打开多个文件(此时占用的文件号未必连续),则再打开文件时,为了避免文件号重复,可使用FreeFile函数,该函数返回当前程序未被占用的最小的文件号,可通过把函数值赋给一个变量来取得这个文件号。例如,执行下面的代码,
FileNumber = FreeFile
Open "E:\VB\Exercise.TXT" For Output As # FileNumber
则在E盘VB文件夹下建立Exercise.TXT数据文件,文件号为FileNumber,如果这个文件已经存在,则原有文件被覆盖;如果执行下面的代码,
FileNumber = FreeFile
Open "E:\VB\Exercise.TXT" For Append As # FileNumber
也在E盘VB文件夹下建立Exercise.TXT数据文件,文件号为FileNumber,但当该文件已经存在时,新写入的数据追加到原有数据的后面。
●缓冲区大小:当在文件与程序之间拷贝数据时,选项len参数指定缓冲区的字符数,其范围为1 - 32767,缺省值为512字节。例如,执行下面的代码,
Open "E:\VB\Exercise.TXT" For Input As # 1 len = 1024
则打开E盘VB文件夹下的数据文件Exercise.TXT,为读取数据作准备,与之关联的文件号为1,读写缓冲区为1024字节。
在程序中,获取文件名可通过【打开】文件或文件【另存为】对话框实现。例如,下面的代码从【打开】文件对话框中打开一个文件,以便从该文件中读取数据:
CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files (*.txt)|*.txt| Batch Files (*.bat)|*.bat"
CommonDialog1.FilterIndex = 2
CommonDialog1.ShowOpen
Filename = CommonDialog1.Filename
F = FreeFile
Open Filename For Input As F
… … …
而下面的代码则从文件【另存为】对话框中输入文件名,以便建立从文件名框中输入或选定的文件:
CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files (*.txt)|*.txt| Batch Files (*.bat)|*.bat"
CommonDialog1.FilterIndex = 2
CommonDialog1.ShowSave
Filename = CommonDialog1.Filename
F = FreeFile
Open Filename For Otput As F
… … …
建立【打开】文件或文件【另存为】对话框用公共对话(CommonDialog)控件,见相关章节。
注意:用公共对话控件可创建【打开】文件和文件【另存为】对话框,但它只能为建立和访问的文件输入文件名提供一个可视的界面,对话框本身不能完成打开文件和保存文件的功能,须编写代码完成。
2、 关闭文件语句:Close
语法格式为:
Close [ #文件号] [, #文件号] … …
该语句的功能是关闭指定的文件,释放缓冲区;若不指定文件号,则关闭所有打开的文件。
程序运行结束时,会自动关闭所有打开的文件,但对打开的文件完成操作后及时关闭该文件是个好习惯,不仅节约内存,也避免意外情况丢失数据。程序运行时将写入文件的数据均放在文件读写缓冲区,待整批写入文件。
6.2.2 顺序文件的写操作
要将程序中的数据写到一个顺序文件,先打开文件以进行顺序输出或添加(注意此时的选用打开方式,选择Output则覆盖原来文件,选择Append则在原来文件后添加数据),可用下面的命令语句写入数据。
1、 Print # 语句:用于为顺序文件写入数据
语法格式为:
Print # 文件号 [, 输出项表]
其中输出项表是要输出的表达式或表达式列表,输出格式同Print方法。
例如,下面的代码在E盘VB文件夹下建立Exercise.TXT数据文件,并往文件中输入字符,最后关闭文件:
Open "E:\VB\Exercise.TXT" For Output As #1 ‘打开文件以便输出
Print #1,”顺序文件写入数据测试” ‘向文件中写入字符串”This is a test”
Print #1, ‘输出一个空行
Print #1,”Zone 1”;Tab;”Zone 2” ‘在两个打印区输出
Print #1,Spc(5);”5 leading spaces” ‘先输出5个空格,再输出字符串
Print #1,Tab(10);”Hello” ‘在第10列上输出字符串
Close #1 ‘关闭文件
下面的代码把文本框Text1中的内容写到一个顺序文件:Exercise.TXT,存放于D:\:
Open "D:\Exercise.TXT" For Output As #2
Print #2, Exercise.Text
Close #2
2、 Write # 语句:将记录写入文件
语法格式为:
Write # 文件号[,表达式列表]
该语句适用于向划分了字段的记录格式的文件写入数据。“表达式表”中的每个表达式写入一个字段,一个Write # 语句一次写入一个记录。表达式表中包含多个表达式时以逗号分隔。缺省表达式时写入一个空行。
用Write # 语句写入的数据各个字段间自动加逗号分隔符,字符型数据自动加双引号定界符,记录尾自动加回车换行符。
例如,用Write # 建立由表6-2给出的居民区人员登记表:
表6-2 居民区人员登记表(jmdjb.dat)
身份证号 姓名 性别 年龄 出生年月
101 小米 女 24 11/1/1980
102 张明哲 女 6 3/4/1998
……… ……… ……… ……… ………
999 张前 男 1 10/6/2003
代码如下:
Dim sfzh(3) As String, xm(3) As String, xb(3) As String, nl(3) As Integer, csny(3) As Date
sfzh(1) = "101": xm(1) = "小米": xb(1) = "女": nl(1) = 24: csny(1) = #11/1/1980#
sfzh(2) = "102": xm(2) = "张明哲": xb(2) = "女": nl(2) = 6: csny(2) = #3/4/1998#
sfzh(3) = "999": xm(3) = "张前": xb(3) = "男": nl(3) = 1: csny(3) = #10/6/2003#
Open " jmdjb.dat " For Output As #1 ' 建立文件
Write #1, "身份证号", "姓名", "性别", "年龄", "出生年月" ' 写入表头
For i = 1 To 3 '利用循环语句写入多条记录
Write #1, sfzh(i), xm(i), xb(i), nl(i), csny(i) ' 写入第i个记录
Next
Close #1 参考技术A 需要用到VB的FSO文件系统。新建一个FSO对像
Private Sub CmdRead_Click()
Dim fsoTest As New FileSystemObject, file1 As File, ts As TextStream, s As String
Set file1 = fsoTest.GetFile(“C:\testfile.txt")
Set ts = file1.OpenAsTextStream(ForReading)
'读取一行
s = ts.ReadLine
MsgBox s
ts.Close
End Sub
Private Sub CmdWrite_Click()
Dim txtfile As File, ts As TextStream
Set txtfile = fsoTest.GetFile(“c:\testfile.txt")
Set ts = txtfile.OpenAsTextStream(ForWriting)
'使用Write方法写入一行。
ts.Write (“This is only a Test")
' 写入一行带有换行符的文本。
ts.WriteLine (“Testing 1, 2, 3.")
' 向文件中写入三个换行符。
ts.WriteBlankLines (3)
ts.Close
End Sub 参考技术B 如果要运行。可以使用 顺序文件的读取方式,
一行一行的读取 对字符进行操作。
你的文本内容很简单,2组数字中间有空格隔开,可以使用 split函数分割为2个字符,转换为整型,就可以进行运算拉。 参考技术C filename1 = "e:\test.txt"
Open filename1 For Input As #1
Input #1, X1, X2, X3, X4 'x1,x2,x3,x4是用tab隔开的数
Close #1
以上是关于VB达人请进,关于VB引入TXT文件的问题的主要内容,如果未能解决你的问题,请参考以下文章