二、说明:
对文件做任何读写操作之前都必须先打开文件。当pathname指定的文件不存在,那么在用追加、输出、二进制或随机方式打开文件时,可以建立这一文件。如果文件已由其它进程打开,并且被锁定,则Open操作失败,而且会有错误发生。对于二进制文件,没有Len子句。
下列代码以只读模式打开TEST.txt文件。 Open \
下列代码以追加模式打开TEST.txt文件。 Open \
下列代码以只允许写操作的二进制方式打开文件,且对文件进行写锁定。 Open \
下列代码以随机方式打开文件,文件中含有用户自定义数据类型Record的记录。 Type Record '定义用户自定义数据类型。 Name As String * 9 Phone As String * 12 End Type
Public MyRecord As Record '声明变量。
Open \Get #1, , MyRecord
Debug.Print MyRecord.Name Debug.Print MyRecord. Phone Close #1 '关闭文件 三、应用举例:
本示例示范Open语句打开文件。建立一个标准工程,在窗体上添加两个命令按钮,将下面的程序粘贴过去。
Private Sub Command1_Click()
Open \以输出模式打开文件。 Write #1, Spc(5), \通信录\在字符串之前写入五个空格。 Write #1, '将空白行写入文件。 Write #1, \姓 名\手机\
Write #1, \王晓刚\ Write #1, \工作单位\嘉华软件公司\ Write #1,
Write #1, \姓 名\手机\
Write #1, \李海燕\ Write #1, \工作单位\海淀中心小学\ Close #1 '关闭文件 End Sub
Private Sub Command2_Click()
Open \以追加模式打开文件。 Print #1, '将空白行写入文件。
Print #1, \姓 名\手机\数据写入两个区。 Print #1, \赵荣华\
Print #1, \工作单位\公交八公司\以空格隔开两个字符串。
Print #1,
Print #1, \姓 名\手机\
Print #1, \钱宣良\ Print #1, \工作单位\乾坤网络公司\ Close #1 '关闭文件 End Sub
上述代码中,命令按钮一是以输出模式打开文件;命令按钮二是以追加模式打开文件。
Option Base语句
描述:在模块或窗体级别中使用,用来声明数组下标的缺省下界。 一、语法:
Option Base{0|1} 二、说明:
由于下界的缺省设置是0,因此无需使用Option Base语句。但有时在数组的应用中,习惯上从1开始,可用此语句将数组的下界设为1。该语句必须写在模块或窗体的所有过程之前。一个模块或窗体中只能出现一次Option Base,且必须位于带维数的数组声明之前。Option Base对Array或ParamArray不起作用。
Dim、Private、Public、ReDim以及Static语句中的To子句提供了一种更灵活的方式来控制数组的下标。 三、应用举例:
该示例使用Option Base语句来取代数组下标的缺省值0。建立一个标准工程,在窗体上添加一个命令按钮,将下面的程序粘贴过去。LBound函数是用来返回数组的指定维数的下界。
Option Base 1 '将缺省的数组下界设为1。 Private Sub Command1_Click()
Dim Lower As Integer, Lower1 As Integer Dim OneArray(20)
Dim TwoArray(3 To 5, 4) '取代第一维缺省的下界。 Dim ThreeArray(0 To 5) '取代缺省的下界。 '使用LBound函数来测试数组的下界。 Lower = LBound(OneArray) '返回1。 Debug.Print \
Lower = LBound(TwoArray, 1) '返回第一维的下界,3。 Lower1 = LBound(TwoArray, 2) '返回第二维的下界,1。 Debug.Print \ Lower = LBound(ThreeArray) '返回0。 Debug.Print \End Sub
在立即窗口显示 OneArray=1 TwoArray=3,1
ThreeArray=0
Option Compare语句
描述:在模块或窗体级别中使用,用于声明字符串比较时所用的缺省比较方法。 一、语法:
Option Compare{Binary|Text|Database} 二、说明:
在VB中,如果不使用Option Compare语句,缺省的字符串比较方法是Binary。当需要用其他方法比较字符串时,可用此语句在模块或窗体级别中改变。
Option Compare语句必须写在模块或窗体的所有过程之前。Option Compare语句为模块或窗体指定字符串比较的方法有三种:Binary、Text或Database。
Binary方法是根据字符的二进制编码的排序顺序来进行字符串比较。在这种情况下,A 该示例使用Option Compare语句设置缺省的字符串比较方法。建立一个标准工程,在窗体上添加一个命令按钮,将下面的程序粘贴过去。StrComp函数是用来比较字符串的。 Private Sub Command1_Click()
Dim MyStr1 As String, MyStr2 As String, MyComp As Integer MyStr1 = \定义变量。 MyComp = StrComp(MyStr2, MyStr1) Debug.Print MyComp End Sub
由于没有使用Option Compare语句,缺省的字符串比较方法是Binary,所以在立即窗口显示1,字符串MyStr1 现在用Option Compare语句设置缺省的字符串比较方法。把下面的语句粘贴过去,放在上面的过程之前。 Option Compare Text 由于把缺省的字符串比较方法设置为Text,此时立即窗口显示0,字符串MyStr1=MyStr2。 Option Explicit语句 描述:在模块或窗体级别中使用,强制显式声明模块或窗体中的所有变量。 一、语法: Option Explicit 二、说明: 使用Option Explicit可以避免在键入已有变量时出错,在变量的范围不是很清楚的代码中使用该语句可以避免混乱。 如果模块或窗体中使用了Option Explicit,此语句必须写在模块或窗体的所有过程之前。所有的变量也必须使用Dim、Private、Public、ReDim或Static语句来显式声明。当模块或窗体的过程中出现了未用上述语句显式声明的变量名,在编译时会出现错误。 三、应用举例: 该示例使用Option Explicit语句来强制显式声明所有变量。建立一个标准工程,在窗体上添加一个命令按钮,将下面的程序粘贴过去。 Option Explicit '强制显式地声明变量。 Dim MySum As Double '声明窗体级变量。 Private Sub Command1_Click() Static MyInt As String MyInt = 10 '已声明的变量则不会产生错误。 MySum = 10.56 '已声明的变量则不会产生错误。 MyStr = \未声明的变量将产生错误。 End Sub 当运行程序时,由于使用了一个未声明的变量MyStr,在编译时会提示错误。删除MyStr = \,程序正常运行。 OptionPrivate语句 描述:强制声明某个模块为该模块所属工程的私有模块。 一、语法: Option Private Module 二、说明: 诸如Microsoft Excel、Microsoft Basic等程序允许加载多个工程,为了不让其它工程引用主程序中模块的公用部分,可以使用Option Private语句,将主程序中的模块声明为私有。 使用Option Private语句,必须写在模块级别中的任何过程之前。这时模块中被声明为Public的变量、过程等在该模块所属的工程内是公有的,但对其它应用程序或工程则是私有的。 三、应用举例: 该语句没有更多的用法,只需将Option Private Module粘贴在模块的任何过程之前,表示整个模块都是私有的。 Print#语句 描述:将格式化显示的数据写入顺序文件中。 一、语法: Print#filenumber,[outputlist] Print#语句的语法包含下面部分: 部分 描述 filenumber outputlist 必需的。任何有效的文件号 可选的。要写入磁盘文件的表达式或表达式列表 设置: outputlist参数的设置如下: [{Spc(n)|Tab[(n)]}][expression][charpos] 设置 Spc(n) Tab(n) 描述 用来在输出数据中插入空白字符,而n指的是要插入的空白字符数。 用来将插入点定位在某一绝对列号上,这里,n是列号。使用无参数的Tab将插入点定位在下一个打印区的起始位置。 要写入磁盘文件的数值表达式或字符串表达式,当一条语句写入多个表达式时,各表达式之间可用一个空格或一个分号隔开。 指定下一个字符的插入点。使用分号将插入点定位在上一个显示字符之后,用Tab(n)将插入点定位在某一绝对的列号上。 expression charpos 二、说明: 在参数outputlist中,多个表达式之间可用一个逗号或一个分号隔开,使用分号时,各数据之间只留一个空格;当使用逗号时,会用较多的空格将各数据隔开。如果省略参数outputlist,而且,filenumber之后只含有一个列表分隔符,则将一空白行写入文件中。 三、应用举例: 本示例使用Print#语句将数据写入一个文件。建立一个标准工程,在窗体上添加一个命令按钮,将下面的程序粘贴过去。 Private Sub Command1_Click() Open \打开输出文件。 Print #1, Spc(5); \通信录\在字符串之前写入五个空格。 Print #1, '将空白行写入文件。 Print #1, \姓 名\手机\数据写入两个区。 Print #1, \王晓刚\ Print #1, \工作单位\嘉华软件公司\以空格隔开两个字符串。 Print #1, Print #1, \姓 名\手机\ Print #1, \李海燕\ Print #1, \工作单位\海淀中心小学\ Close #1 '关闭文件 End Sub Private语句 描述:在模块或窗体级别中使用,用于声明私有变量及分配存储空间。 一、语法: Private[WithEvents]varname[([subscripts])][As[New]type][,[WithEvents]varname[([subscripts])][