Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As LongPrivate Sub Form_Load()
Dim sSave As String, Ret As Long
sSave = Space(255)
Ret = GetSystemDirectory(sSave, 255)
sSave = Left$(sSave, Ret) //这句是什么意思?
MsgBox "Windows System directory: " + sSave
End Sub
Dim sSave As String, Ret As Long
sSave = Space(255)
Ret = GetSystemDirectory(sSave, 255)
sSave = Left$(sSave, Ret) //这句是什么意思?
MsgBox "Windows System directory: " + sSave
End Sub
该语句是返回系统目录,并将返回的系统目录存储在sSave中,如果路径长度不满255个字节则用空格填充。Ret代表了路径字符串中除了填充的空格之外的长度。所以再使用Left$语句将sSave中的多余空格删除。left就是从第一个参数(字符串)左侧取第二个参数(整型)个字符返回。
返回 Variant (String),其中包含字符串中从左边算起指定数量的字符。语法Left(string, length)Left 函数的语法有下面的命名参数:部分 说明
string 必要参数。字符串表达式其中最左边的那些字符将被返回。如果 string 包含 Null,将返回 Null。
length 必要参数;为 Variant (Long)。数值表达式,指出将返回多少个字符。如果为 0,返回零长度字符串 ("")。如果大于或等于 string 的字符数,则返回整个字符串。
说明欲知 string 的字符数,使用 Len 函数。注意 LeftB 函数作用于包含在字符串中的字节数据。所以 length 指定的是字节数,而不是要返回的字符数。
由于sSave = Space(255),给定的空间是足够的,返回后得截一下(用Left函数)。