Label1(I).Left = Label1(0).Left Label1(I).Caption = MyStr(I) Label1(I).Visible = True
Text1(I).Top = Text1(I - 1).Top + 1.5 * Text1(I).Height Text1(I).Left = Text1(0).Left Text1(I).Visible = True Next End Sub
Lock,Unlock语句
描述:锁定或解锁用Open语句打开的全部文件或一部分文件,控制其它进程是否可以修改文件。 一、语法:
Lock [#]filenumber[,recordrange] '锁定文件。 ...
Unlock [#]filenumber[,recordrange] '解锁文件。 Lock和Unlock语句的语法具有以下几个部分: 部分 filenumber recordrange 描述 必需的。任何有效的文件号 可选的。要锁定或解锁的记录范围 设置:
recordrange参数的设置如下: recnumber|[start]To end 设置 Recnumber Start End 描述 记录号(Random方式的文件)或字节数(Binary方式的文件),指定要开始锁定或解锁的位置 第一个要锁定或解锁的记录号或字节数 最后一个要锁定或解锁的记录号或字节数 二、说明:
在多个进程同时访问同一个文件时,为避免因同时修改文件某个部分而发生错误,可使用Lock与Unlock语句。
在使用Lock和Unlock语句时,若只指定一个记录,则只对该记录进行锁定或解锁。若指定某个范围内的记录,则从头(start)到尾(end)对此范围内的所有记录进行锁定或解锁。如果使用无recnumber的Lock,则会将整个文件都锁定;而使用无recnumber的Unlock则会将整个文件都解锁。对于以顺序输入或输出的方式打开文件,recordrange参数不起作用,也就是说无论start和end指定什么范围,Lock和Unlock都将影响整个文件。
Lock和Unlock语句总是成对出现,且参数也必须完全一致。如果只使用了Lock语句而没有使用Unlock语句,在关闭这个文件或退出程序以后,因为没有解除锁定,会产生无
法预料的后果。 三、应用举例:
本示例示范如何使用Lock及Unlock语句。当用户锁定数据中某个记录时,其他过程不可以来修改这条记录。建立一标准工程,在窗体上添加两个命令按钮,将下面的程序粘贴过去。
Dim MyRecord As MyCorrespondence, RecordNumber As Integer '声明变量。 Private Sub Command1_Click()
'以随机访问的方式来打开文件。
Open \ RecordNumber = 1 '指定记录编号。 Lock #1, RecordNumber '锁住该记录。 End Sub
Private Sub Command2_Click()
Unlock #1, RecordNumber '当前记录解锁。 Close #1 '关闭文件 End Sub
Private Sub Form_Activate()
MyRecord.ID = \给一个元素赋值。 MyRecord.Name = \王小川\ MyRecord.Sex = \男\
MyRecord.birth = \ MyRecord.Unit = \汾西机器厂\ MyRecord.Job = \科长\
MyRecord.Address = \太原市解放路87号\ MyRecord.Phone = \
Open \ Put #1, , MyRecord '将记录写入文件中。 Close #1 End Sub
添加一个标准模块。将下面的程序粘贴到标准模块。 Type MyCorrespondence '创建用户自定义的类型。 ID As String * 4 '定义元素的数据类型。 Name As String * 10 Sex As String * 2 birth As String * 8 Unit As String * 10 Job As String * 10 Address As String * 30 Phone As String * 12 End Type
运行程序,先单击命令按钮一,打开TESTFILE文件修改后保存,因为文件被锁定,此时提示“进程无法访问文件,因为另一个程序已所定文件的一部分”;然后单击命令按钮二,同样修改TESTFILE文件后保存,由于已解锁文件修改成功。
LSet语句
描述:将某字符串插入到另一字符串变量的最左边,或是将一用户定义类型变量复制到另一用户自定义类型变量。 一、语法:
LSet stringvar=string
LSet varname1=varname2
LSet语句的语法包含下面部分: 部分 stringvar string varname1 varname2 描述 必需的。字符串变量名称 必需的。在stringvar内插入的字符串表达式 必需的。用户自定义类型变量名,内容将复制进来 必需的。用户自定义类型变量名,内容将复制出去 二、说明:
LSet会保留原stringvar内的字符串长度,如果string比stringvar内的字符串短,stringvar中多出的字符以空白替换;如果string比stringvar内的字符串长,LSet只在stringvar中放置长度为stringvar内的字符串长度的左边几个字符。
使用LSet将一用户自定义类型变量复制到另一用户自定义类型变量应当慎重,这种方法可能会造成不可预料的结果。
因为不同操作系统间对数据结构的做法不同,使用LSet的程序不能保证有很好的移植性。
三、应用举例:
建立一标准工程,在窗体上添加一个命令按钮,将下面的程序粘贴过去。 Private Sub Command1_Click()
Dim MyStr1 As String, MyStr2 As String
MyStr1 = \变量赋初值 LSet MyStr1 = \ MyStr2 = \
Debug.Print \ Debug.Print \ Debug.Print \ Debug.Print \
LSet MyStr1 = \ MyStr2 = \ Debug.Print \ Debug.Print \ Debug.Print \ Debug.Print \End Sub
在立即窗口显示: MyStr1Long=10 MyStr2Long=4 MyStr1=(Left ) MyStr2=(Left) MyStr1Long=10 MyStr2Long=26 MyStr1=(abcdefghij)
MyStr2=(abcdefghijklmnopqrstuvwxyz)
由显示结果可以看出,变量MyStr1和MyStr2的初值均为0123456789,然后两个变量均赋值Left,新值长度短于原变量长度,由于MyStr1用Lset赋值,其长度仍为原变量长度,缺少的部分以空白字符替换;最后两个变量均赋值abcdefghijklmnopqrstuvwxyz,新值长度长于原变量长度,由于MyStr1用Lset赋值,其长度仍为原变量长度,多出的部分被截掉。
Mid语句
描述:用另一个字符串中指定数量的字符替换Variant或String变量中的字符。 一、语法:
Mid(stringvar,start[,length])=string Mid语句的语法包含下面部分: 部分 stringvar start length string 描述 必需的。被更改的字符串变量名 必需的。stringvar中被替换的字符开头位置 可选的。被替换的字符数。如果省略,string将全部用上 必需的。字符串表达式,替换部分stringvar的字符串 二、说明:
被替换的字符数量总是小于或等于stringvar的字符数。
Mid语句也可以将一个Variant或String变量中的字符赋值给另一个Variant或String变量,语法为:
Stringvar1= Mid(stringvar2,start[,length])
可以使用MidB语句作用于包含在字符串中的字节数据。此时start指定stringvar中被替换的字节开头位置,而length为替换的字节数。 三、应用举例:
本示例使用Mid语句将某字符串中的几个字符替换为其他的字符。建立一标准工程,在窗体上添加一个命令按钮,将下面的程序粘贴过去。 Private Sub Command1_Click()
Dim MyString1 As String, MyString2 As String, MyString3 As String MyString1 = \设置字符串初值。 MyString2 = \设置字符串初值。 Mid(MyString1, 5, 3) = \
MidB(MyString2, 5, 3) = \ MyString3 = Mid(MyString1, 5, 3)
Debug.Print \ Debug.Print \ Debug.Print \End Sub
在立即窗口显示:
MyString1=ABCDUVWHIJK MyString2=ABUVEFGHIJK MyString3=UVW
MkDir语句
描述:创建一个新的目录或文件夹。 一、语法: MkDir path
必要的path参数是用来指定所要创建的目录或文件夹的字符串表达式。 二、说明:
path可以包含路径(即驱动器和已有的目录或文件夹)。如果没有指定路径,则MkDir会在当前路径上创建新的目录或文件夹。 三、应用举例:
本示例使用MkDir语句来创建目录或文件夹。建立一个标准工程,在窗体上添加两个命令按钮,将下面的程序粘贴过去。 Private Sub Command1_Click() On Error GoTo MyErr MkDir \
MsgBox \文件夹已建立\ Exit Sub MyErr:
MsgBox Err.Description End Sub
Private Sub Command2_Click() On Error GoTo MyErr MkDir \ MsgBox \文件夹已建立\ Exit Sub MyErr:
MsgBox Err.Description End Sub
运行时先单击命令按钮一,在当前路径建立一个名为“MyDir”的文件夹。然后单击命令按钮二,则在“MyDir”的文件夹里建立一个名为“Path”的文件夹。