fileNum recNum position varname 必需的。任何有效的文件号。 可选的。随机文件的记录号,表示在此处开始读出数据 可选的。二进制文件的字节数,表示在此处开始读出字节。 必需的。一个有效的变量名,将读出的数据放入其中。 二、说明:
本语句用来读随机文件或二进制文件。对于随机文件,采用: Get [#]fileNum,[recNum],varname 对于二进制文件,采用: Get [#]fileNum,[position],varname
如果不选recNum或position,必须将用于分界的逗号罗列出来。例如: Get #1,,MyString
语句中recNum或position可以使用数字,也可以使用数字变量。当其值为1时指第一条记录或第一个字节,其值为2时指第二条记录或第二个字节,依此类推。若省略recNum或position,则会读出紧随上一个Get或Put语句之后的下一个记录或字节。 三、应用举例:
本示例使用Get语句来将数据从文件读到变量中。建立一标准工程,在窗体上添加一个命令按钮和五个文本框,将下面的程序粘贴过去。 Dim MyRecord As MyCorrespondence '声明变量。 Private Sub Command1_Click()
Open \ Get #1, 2, MyRecord
Text1.Text = MyRecord.ID Text2.Text = MyRecord.Name Text3.Text = MyRecord.Unit Text4.Text = MyRecord.Address Text5.Text = MyRecord.Phone Close #1 End Sub
Private Sub Form_Load()
Open \ MyRecord.ID = \
MyRecord.Name = \王小川\ MyRecord.Unit = \汾西机器厂\
MyRecord.Address = \太原市解放路87号\ MyRecord.Phone = \ MyRecord.cr = Chr(13) + Chr(10) Put #1, 1, MyRecord MyRecord.ID = \
MyRecord.Name = \李志刚\ MyRecord.Unit = \太原机车厂\
MyRecord.Address = \太原市五一路7号\ MyRecord.Phone = \
MyRecord.cr = Chr(13) + Chr(10) Put #1, , MyRecord MyRecord.ID = \ MyRecord.Name = \郭娟\
MyRecord.Unit = \太原客运段\
MyRecord.Address = \太原市迎泽大街54号\ MyRecord.Phone = \ MyRecord.cr = Chr(13) + Chr(10) Put #1, , MyRecord Close #1 End Sub
添加一个标准模块。将下面的程序粘贴到标准模块。 Type MyCorrespondence '创建用户自定义的类型。 ID As String * 4 '定义元素的数据类型。 Name As String * 10 Unit As String * 10 Address As String * 30 Phone As String * 12 cr As String * 2 End Type
GoSub...Return语句
描述:在一个过程中跳到另一个子程序中执行,执行后再返回。 一、语法: GoSub line ... line ... Return
必要的line参数可以是任何行标签或行号。 二、说明:
可以在过程中的任何地方使用GoSub和Return,但是GoSub和与之相应的Return语句必须放在同一个过程中。这样程序在碰到Return语句时,就会返回到紧接在刚刚执行的GoSub语句之后的语句继续执行。
由于line子程序一般放在过程的后部,而程序又是顺序执行的,为防止当过程结束时再次进入line子程序,常在line子程序前用Exit Sub退出过程。 三、应用举例:
本示例使用GoSub来调用子过程里的一段子程序来求圆的面积。建立一个标准工程,在窗体上添加一个命令按钮和一个文本框,将下面的程序粘贴过去。 Private Sub Command1_Click() Dim Num
Num = InputBox(\请输入一个正数。\请求用户输入一个数字。
If Num > 0 Then '如果用户输入一个正数,则使用子程序。 GoSub MyArea Text1.Text = Num Else
MsgBox \输入错误\ End If
Exit Sub '使用Exit命令退出过程 MyArea:
Num = Num * Num * 3.1416 '求圆的面积。 Return '将控制返回GoSub之后的语句。 End Sub
单击命令按钮后,在输入对话框输入一个正数,此时调用子程序来求圆的面积,然后Return语句则将执行返回到GoSub的下一个语句。如果输入负数,则提示输入错误。Exit Sub语句则是用来避免控制意外进入该子程序的情形发生。
GoTo语句
描述:无条件地转移到过程中指定的行。 一、语法: GoTo line
必要的line参数可以是任意的行标签或行号。 二、说明:
GoTo只能跳到它所在过程中的行。 注意:为了使程序便于阅读,在编程时,应尽可能使用结构化控制语句(Do...Loop、For...Next、If...Then...Else、SelectCase),而避免使用GoTo语句。 三、应用举例:
本示例用GoTo语句在一个过程内的不同程序段间作流程控制。当输入的正数大于或等于10时,计算周长;当输入的正数小于10时,计算圆面积。建立一个标准工程,在窗体上添加一个命令按钮和一个文本框,将下面的程序粘贴过去。 Private Sub Command1_Click() Dim Num
Num = InputBox(\清输入一个正数。\请求用户输入一个数字。 If Num < 10 Then
GoTo MyCircumference Else
GoTo MyWeekLong End If Exit Sub
MyCircumference:
Num = Num * Num * 3.1416 '求圆的面积。 GoTo Last MyWeekLong:
Num = Num * 2 * 3.1416 '求圆的周长。
Last:
Text1.Text = Num End Sub
If...Then...Else语句
描述:条件语句,根据表达式的值有条件地执行一组语句。 一、语法: 1、标准语法:
If condition Then [statements] [Else elsestatements] 或者,可以使用块形式的语法: If condition Then [statements]
[ElseIf condition-n Then [elseifstatements]] ... [Else
[elsestatements]] End If
2、中文语法:
IF 表达式 Then 语句1 [Else 语句2]
中文意思是如果表达式成立,执行语句1,否则执行语句2。 IF 表达式1 Then [语句组1]
[ElseIF 表达式N Then [语句组N]] …… [Else
[语句组N+1]] End IF
我们可以把表达式看成条件,用通俗语言来讲如果满足条件1那么执行语句组1;否则如果条件N成立那么执行语句组N;否则也就是说条件都不满足时执行语句组N+1。而在执行完Then或Else之后的语句后,程序会退出If...Then...Else语句,而从End If之后的语句继续执行。
第一种语法我们称为单行形式;第二种语法我们称为块形式。 If...Then...Else语句的语法包含下面部分: 部分 描述 必要参数。一个或多个具有下面两种类型的表达式:数值表达式或字符串表达式,其运算结果为True或False。如果表达式为Null,则表达式会视为False。 在块形式中是可选参数;但是在单行形式中,且没有Else子句时,表达式(condition) 语句组(statements) 则为必要参数。一条或多条以冒号分开的语句,它们在表达式为True时执行。 表达式N(condition-n) 可选参数。与表达式同 语句组可选参数。一条或多条语句,它们在相关的表达式N为True时执N(elseifstatements) 行。 语句组可选参数。一条或多条语句,它们在前面的表达式或表达式N都不N+1([elsestatements) 为True时执行。 二、说明:
单行形式(第一种语法)适用于简单程序。块形式(第二种语法)则提供了更强的结构化与适应性,并且通常也是比较容易阅读、维护及调试的。 在单行形式中,按照If...Then判断的结果也可以执行多条语句。所有语句必须在同一行上并且以冒号分开,如下面语句所示: If A>10 Then A=A+1:B=B+A:C=C+B
在块形式中,If语句必须是第一行语句,而且必须以一个End If语句结束。ElseIf和Else子句都是可选的。在If块中,可以放置任意多个ElseIf子句,但是都必须在Else子句之前。
为了方便理解,我们把块形式(第二种语法)分解成三种形式 1、IF 表达式 Then 语句组 End IF
这种形式比较好理解,通俗的讲就是如果表达式为真,那么执行语句组。 2、IF 表达式 Then 语句组1 Else
语句组2 End IF
这种形式也比较好理解,通俗的讲就是如果表达式为真,那么执行语句组1,否则执行语句组2。
3、IF 表达式1 Then 语句组1
ElseIF 表达式2 Then 语句组2 ……
ElseIF 表达式N Then 语句组N Else
语句组N+1 End IF
这种形式比第二种形式复杂一些,当程序运行到一个If块时,各部分的表达式会依次计算并加以测试。如果找到某个为True的条件时,则其紧接在相关的Then之后的语句会被执行。如果没有一个ElseIf条件式为True,则程序会执行Else部分的语句。 If块也可以是嵌套的。