打开文本文件是不少程序必须处理的问题。如何更有效地打开文本文件应该是一个值得研究的课题。为此,笔者将自己搜集到的几种方法无私地奉献出来(-_-),供各位参考。同时期盼大家也来参与,借VB编程乐园这块宝地互相交流。如您有这份心,土人在这里先说声谢谢!
下面所举的例子均假设F盘下有一个名为d.txt的文本文件,若需要尝试这些例子请作相应的改动。
方法一:
用定长的String变量获取文本内容。由于定长String变量支持的下界为65400,所以在打开超过32K字节的文件时超出部分的字节将无法获取:
Private Sub Command1_Cliack()
Dim sA As String * 65400 '声明定长String变量
Open "F:\d.txt" For Binary As #1 '用二进制打开文件
Get #1, , sA '用Get语句从文件中获取字节
Text1 = sA '显示打开的文件
Close #1 '关闭文件
End Sub
方法二:
先声明一字符串变量,然后用空格填充字符串,使变量大小与文件大小一致,再通过Get语句将文件全部数据存储到变量中,从而达到获取整个文件字节数的目的。此法可以打开大于32K的文件,但应该注意的是,装载文件的容器必须能装载大于32K的文件,下例用RichTextBox控件显示打开的文件:Private Sub Command1_Click()
Dim sA As String
Open "f:\d.txt" For Binary As #1
sA = Space(LOF(1)) '用空格填充sA变量
N,] j WQ y0Get #1, , sA '用Get语句获取文件全部内容
RichTextBox1.Text = sA
Close #1
End Sub
方法三:
用StrConv函数将文件的控制字符串数据和Unicode码之间进行转换,从而达到打开文件的目的。可打开任意大小文件。此法笔者曾有一篇文章谈及,这里再给一个简单例子
Private Sub Command1_Click()
Open "f:\d.txt" For Input As #1
RichTextBox1.Text = StrConv(InputB$(LOF(1), 1), vbUnicode)
Close #1
End Sub
方法四:
用RichTextBox控件自身的LoadFile属性打开文件:
RichTextBox1.LoadFile "f:\d.txt", rtfText
百度首页百度空间|
嘿色ゞ深处
HeyColor You Is ?
主页博客相册|个人档案|好友
查看文章
VB 打开文本文件打开txt文件
2008年04月13日星期日10:28
打开文本文件是不少程序必须处理的问题。如何更有效地打开文本文件应该是一个值得研究的课题。为此,笔者将自己搜集到的几种方法无私地奉献出来(-_-),供各位参考。同时期盼大家也来参与,借VB编程乐园这块宝地互相交流。如您有这份心,土人在这里先说声谢谢!
下面所举的例子均假设F盘下有一个名为d.txt的文本文件,若需要尝试这些例子请作相应的改动。
方法一:
用定长的String变量获取文本内容。由于定长String变量支持的下界为65400,所以在打开超过32K字节的文件时超出部分的字节将无法获取:
Private Sub Command1_Cliack()
Dim sA As String * 65400 '声明定长String变量
Open "F:\d.txt" For Binary As #1 '用二进制打开文件
Get #1, , sA '用Get语句从文件中获取字节
Text1 = sA '显示打开的文件
Close #1 '关闭文件
End Sub
方法二:
先声明一字符串变量,然后用空格填充字符串,使变量大小与文件大小一致,再通过Get语句将文件全部数据存储到变量中,从而达到获取整个文件字节数的目的。此法可以打开大于32K的文件,但应该注意的是,装载文件的容器必须能装载大于32K 的文件,下例用RichTextBox控件显示打开的文件:Private Sub Command1_Click()
Dim sA As String
Open "f:\d.txt" For Binary As #1
sA = Space(LOF(1)) '用空格填充sA变量
N,] j WQ y0Get #1, , sA '用Get语句获取文件全部内容
RichTextBox1.Text = sA
Close #1
End Sub
方法三:
用StrConv函数将文件的控制字符串数据和Unicode码之间进行转换,从而达到打开文件的目的。可打开任意大小文件。此法笔者曾有一篇文章谈及,这里再给一个简单例子
Private Sub Command1_Click()
Open "f:\d.txt" For Input As #1
RichTextBox1.Text = StrConv(InputB$(LOF(1), 1), vbUnicode)
Close #1
End Sub
方法四:
用RichTextBox控件自身的LoadFile属性打开文件:
RichTextBox1.LoadFile "f:\d.txt", rtfText
Private Sub Form_Load()
Text1.MultiLine = True
Dim x As String
Open App.Path & "\版本说明.txt" For Input As #1
Input #1, x
Text1.Text = Input(LOF(1), 1)
End Sub
问题:如何在VB中打开txt文件的内容输出成数组?txt文件中的内容如下:(数字之间以tab空格格开)1 2 3 4 5 4 5 6 7 8 9 10 11 12 13输出成格式为{{1,2,3,4,5},{4,5,6,7,8},{9,10,11,12,13}}的文本文件?
Private Sub Command1_Click()
Dim A$
Open "C:\1.txt" For Input As #1
A = StrConv(InputB$(LOF(1), #1), vbUnicode)
Close #1
A = "{" & Replace(Replace(A, Chr(9), ","), vbCrLf, "},{") & "}"
Open "C:\1.txt" For Output As #1
Print #1, "{"
Print #1, A
Print #1, "}"
Close #1
MsgBox "OK!"
End Sub
打开txt文件方法:(我发现就这种方法最简单了)
Private Sub Command1_Click()
Shell "notepad.exe d:\filename.txt", vbNormalFocus '具体的路径更改app.path & "\filename.txt"
End Sub
很简单的几句代码!
vb中调用txt文档内容
VB中要调用TXT文档内容,要使用到open语句,open语句的语法是:
Open pathname For mode [Access access] [lock] As [#] filenumber [Len=reclength] pathname 必选,为文件路径,需用双引号括起来,如果是相对路径就要写成App.path & "filename"
mode 必选,指定文件方式,共有Append(附加、添加)、Binary(二元的)、Input(输入)、Output (输出)、或Random(随意)方式,如果未指定方式,则以Random访问方式打开。
access 可选,说明打开的文件可以进行的操作,有Read、Write或Read Write操作。
lock 可选,限制于其它进程打开的文件的操作,有Shared、Lock Read、Lock Write和Lock Read Write 操作。
filenumber 必选,指定一个有效的文件号,范围在1到511之间。使用FreeFile函数可得到下一个可用的文件号。
reclength 可选,小于或等于32,767(字节)的一个数。对于用随机访问方式打开的文件,该值就是记录长度。对于顺序文件,该值就是缓冲字符数。
说明:
如果pathname 指定的文件不存在,那么,在用Append、Binary、Output、或Random 方式打开文件时,可以建立这一文件。
如果文件已由其它进程打开,而且不允许指定的访问类型,则Open 操作失败,而且会有错误发生。
如果mode 是Binary 方式,则Len 子句会被忽略掉。
重要在Binary、Input 和Random 方式下可以用不同的文件号打开同一文件,而不必先将该文件关闭。在Append 和Output 方式下,如果要用不同的文件号打开同一文件,则必须在打开文件之前先关闭该文件。
结构:
Open strpath For Input As #intFNum
Do While Not EOF(intFNum)
Line Input #intFNum, strTemp
str = str & strTemp
Loop
Close #intFNum
实例1:读取相对路径下"实例.txt"的所有内容。
Private Sub Form_Load()
Open App.Path & "实例.txt" For Input As #1
DO While Not EOF(1)
Line Input #1,a '使用行读取
Text1.Text=Text1.Text & a & vbCrLf '读取一行后回车换行
Loop
Close #1
End sub
实例2:按command1按钮,把c:\123.txt文本中的内容全部读取到text1控件中。'text1控件的multiline属性设成true scrollbar属性设成2
Private Sub Command1_Click()
dim lines as string
dim nextline as string
open "c:\123.txt" for input as #1
do until eof(1)
line #1 nextline
lines=lines & nextline & char(13) & char(10)
loop
close #1
text1.text=lines
End Sub
实例3:按下command1按钮,读取c:\321.txt文本中前20行的内容到text1控件中。
'text1控件的multiline属性设成true scrollbar属性设成2
Private Sub command1_click()
dim lines as string
dim nextline as string
dim i as integer
open "c:\321.txt" for input as #1
for i=1 to 20
On Error Resume Next
line #1 nextline
lines=lines & nextline & char(13) & char(10)
next i
close #1
text1.text=lines
End Sub
实例4:按下command1按钮,在1.txt文档中找出前11 位对应text1.text内容的行,并把查找的结果在text2.text中显示。
Private Sub Command1_Click()
Dim nextline as string
Dim lines as string
open "d:\dazhong\desktop\1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1,nextline
If Text1.Text=Left(nextline,11) Then
lines=nextline
End If
Text2.Text=Text2.Text & lines & vbCrLf
Loop
Close #1
End Sub
如果你的C盘有一个叫做123.txt 那么123.txt 的路径就是C:\123.txt 这是代码
Private Sub Command1_Click()
shell "explorer.exe C:\123.txt"
end sub
就是这么简单