VB读写文件 您所在的位置:网站首页 vb可以写什么 VB读写文件

VB读写文件

2024-07-12 05:09| 来源: 网络整理| 查看: 265

VB读写文件要用到以下语句:     1、Open语句打开文件。     2、读文件使用Line Input、Input #,(以上为文本方式)和Get(以上为二进制方式)。     3、写文件使用Print #、Write(以上为文本方式)和Put(以上为二进制方式)。     4、Close语句关闭文件     5、二进制方式下移动文件位置使用Seek语句。     所有这些语句在VB的帮助中都有详细说明和例子。     文本文件的示例:     Open "TESTFILE" For Output As #1 ' 打开输出文件。     Print #1, "This is a test" ' 将文本数据写入文件。     Print #1, ' 将空白行写入文件。     Print #1, "Zone 1"; Tab ; "Zone 2" ' 数据写入两个区(print zones)。     Print #1, "Hello" ; " " ; "World" ' 以空格隔开两个字符串。     Print #1, Spc(5) ; "5 leading spaces " ' 在字符串之前写入五个空格。          Print #1, Tab(10) ; "Hello" ' 将数据写在第十列。          ' 赋值 Boolean、Date、Null 及 Error 等。     Dim MyBool, MyDate, MyNull, MyError     MyBool = False : MyDate = #February 12, 1969# : MyNull = Null     MyError = CVErr(32767)     ' True、False、Null 及 Error 会根据系统的地区设置自动转换格式。     ' 日期将以标准的短式日期的格式显示。     Print #1, MyBool ; " is a Boolean value"          Print #1, MyDate ; " is a date"     Print #1, MyNull ; " is a null value"     Print #1, MyError ; " is an error value"     Close #1 ' 关闭文件。          读文件示例     使用 Line Input # 语句从顺序文件中读入一行数据,并将该行数据赋予一个变量。本示例假设 TESTFILE 文件内含数行文本数据。     Dim TextLine     Open "TESTFILE" For Input As #1 ' 打开文件。     Do While Not EOF(1) ' 循环至文件尾。      Line Input #1, TextLine ' 读入一行数据并将其赋予某变量。      Debug.Print TextLine ' 在调试窗口中显示数据。     Loop     Close #1 ' 关闭文件。     你也可以在我们的“磁盘、文件和目录”栏目中找到许多这方面的问题和例子。

 

Get和Put语句也可以读写多个字节,可以把每次读写的内容放在一个字节变量数组中,以提高程序速度。例如:       Dim DSX() As Byte '为字节数组,用来存储读写内容       Dim ReadFileNo, WriteFileNo As Integer       '读写文件号       Const Unit = 100000 '读写块的大小       Open SourceFileName For Binary Access Read As 1       WriteFileNo = FreeFile       Open TargetFileName For Binary Access Write As WriteFileNo       ReDim DSX(Unit) As Byte '设置存储字节数组的大小       Get #ReadFileNo, 100, DSX()       Put #WriteFileNo, 1, DSX()       Close WriteFileNo, ReadFileNo

 

    Open "test.txt" For Output As 1     Data1.Recordset.MoveFirst     Do While Not Data1.Recordset.EOF      Print #1, Data1.Recordset("字段1"); ", "; ' 不换行      Print #1, Format(Data1.Recordset("字段2"), "###.##")      Data1.Recordset.MoveNext     Loop     Close #1

 

 

commondialog.action是用来定义对话框的类型的 action=1 打开文件对话框 action=2 另存为文件对话框 action=3 颜色对话框 action=4 字体对话框 action=5 打印对话框

 

 

打开文本文件是不少程序必须处理的问题。如何更有效地打开文本文件应该是一个值得研究的课题。为此,笔者将自己搜集到的几种方法无私地奉献出来(-_-),供各位参考。同时期盼大家也来参与,借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 StringOpen "f:/d.txt" For Binary As #1sA = Space(LOF(1)) '用空格填充sA变量Get #1, , sA '用Get语句获取文件全部内容RichTextBox1.Text = sAClose #1End Sub

方法三:用StrConv函数将文件的控制字符串数据和Unicode码之间进行转换,从而达到打开文件的目的。可打开任意大小文件。此法笔者曾有一篇文章谈及,这里再给一个简单例子:Private Sub Command1_Click()Open "f:/d.txt" For Input As #1RichTextBox1.Text = StrConv(InputB$(LOF(1), 1), vbUnicode)Close #1End Sub

方法四:用Shell语句直接调出Windows的记事本,给个文件名即可轻而易举地打开文本文件。此法适合于打开程序的Readme文件(注意:在可执行文件和要打开的文本文件之间要有空格):Shell "NotePad.EXE f:/d.txt",vbNormalFucus

方法五:用RichTextBox控件自身的LoadFile属性打开文件:RichTextBox1.LoadFile "f:/d.txt", rtfText

dim nFile as Integer, strTmp as String    dim arTmp() as String    nFile = FreeFile    Open 文本文件全路径名 For Input As #nFile    Do While Not EOF(nFile)       Line Input #nFile, strTmp       arTmp=Split(strTmp,分隔符) '不知道你分隔符是空格还是TAB?       分析该数组(arTmp(0)对应第一个字段,依次类推)    Loop    Close #nFile

 

'假设要得到多个空格分隔的内容Dim str1 As StringDim astr1() As String,astr2() As StringDim i as LongOpen "c:/tmp.txt" For Input As 1str1 = Strconv(InputB$(LOF(1), 1), vbUnicode)astr1 = split(str1 , vbCrLf)'以回车换行符分割For i=0 To Ubound(astr1)   strLine=astr1(i)   'strLine为一行的字符串   '多个空格替换为一个   while not instr(strLine," ")=0      strLine=replace(strLine," "," ")      astr2=split(str1 , " ")      '遍历astr2得到   wendNext

 

 

dim str as stringdim arr() as stringopen "c:/txtfile.txt" for input as #1      line input #1,str      arr=split(str," ")           ....'处理过程

close #1

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有