
Private Sub Command1_Click()
Dim a$(), b$()
a = Split("张三,李四,王红,王毅力,王大叔", ",")
b = findstr(a, "王")
For i = 0 To UBound(b)
Print b(i)
Next
End Sub
Private Function findstr(ByRef Expression() As String, ByVal Find As String) As String()
Dim m_Array$(), i%, n%
n = 0
For i = LBound(Expression) To UBound(Expression)
If InStr(Expression(i), Find) > 0 Then
ReDim Preserve m_Array(n)
m_Array(n) = Expression(i)
n = n + 1
End If
Next
findstr = m_Array
End Function
例:已知直角三角形两直角边的值,计算第三边(斜边)的函数。
Function nuse(a as interger, b as interger ) as single
Nuse=sqr(a^2+b^2)
End Function
在VB中调用FUNCTION过程的方法:strx=nuse(width, Height)
当过程有一个返回值时,可以使用函数。当过程有多个返回值时,就当用过程。
函数是通过函数名回送一个结果值。在函数的形式参数表后面要说明函数(即结果)的类型。而过程的结果由参数送回。
函数体中至少要包括一个给函数赋值的语句。而过程不能给过程名赋值。
函数的调用出现在表达式中。而过程的调用必须作为一个单独的语句。
形参没有具体的值,只代表了参数的个数、位置、类型;只能上简单变量,不能是常量、数组元素、表达式。
FileNameFileTitle
Filter
dlgopenshowopen
text1text=dlgopenfilenameInitDir初始化路径
default
Option ExplicitPrivate Sub Command1_Click()
Dialog1ShowOpen
Text1Text = Dialog1FileName
End Sub
文本框显示路径文字
Private Sub Command2_Click()
Dialog2ShowColor
Text1ForeColor = Dialog2Color
End Sub
文本框前景颜色
Private Sub Command3_Click()
End
End Sub
Dialog2ShowPrint
Dialog2ShowHelp
Vb常用内部函数
请单击要查看的函数组:
类型转换函数 数学函数 日期与时间函数 随机数函数
字符串函数 文件 *** 作函数 窗体输入输出函数 Chr vbcrlf
单击下面的大标题可以返回此处:
类型转换函数
Int(x):求不大于自变量x的最大整数
Fix(x):去掉一个浮点数的小数部分,保留其整数部分
Hex$(x):把一个十进制数转换为十六进制数
Oct$(x):把一个十进制数转换为八进制数
Asc(x$):返回字符串x$中第一个字符的ASCII字符
Chr$(x):把x的值转换为相应的ASCII字符
VB按下按钮后,标题显示A再按一次显示B,再按一次又显示A
Option Explicit
方法一
Private Sub Form_Click()
MeCaption = Chr$((-Asc(MeCaption) + 131))
End SubPrivate Sub Form_Load()
MeCaption = "A"
End Sub
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等xor异或 Str$(x):把x的值转换为一个字符串
Cint(x):把x的小数部分四舍五入,转换为整数
Ccur(x):把x的值转换为货币类型值,小数部分最多保留4 位且自动四舍五入
CDbl(x):把x值转换为双精度数
CLng(x):把x的小数部分四舍五入转换为长整数型数
CSng(x):把x值转换为单精度数
Cvar(x):把x值转换为变体类型值
VarPtr(var):取得变量var的指针
数学函数
Sin(x):返回自变量x的正弦值
Cos(x): 返回自变量x的余弦值
Tan(x): 返回自变量x的正切值
Atn(x): 返回自变量x的反正切值
Abs(x): 返回自变量x的绝对值
Sgn(x): 返回自变量x的符号,即当x为负数时,返回-1;当x为0时,返回
0;当x为正数时,返回1
Sqr(x):返回自变量x的平方根,x必须大于或等于0
Exp(x):返回以e为底,以x为指数的值,即求e的x次方
日期与时间函数
Day(Now):返回当前的日期
WeekDay(Now):返回当前的星期
Month(Now):返回当前的月份
Year(Now):返回当前的年份
Hour(Now):返回小时(0~23)
Minute(Now):返回分(0~59)
Second(Now):返回秒(0~59)随机数函数
Rnd[(x)]:产生一个0~1之间的单精度随机数
http://baikebaiducom/view/860298htm
Randmize[(x)]:功能同上,不过更好
http://baikebaiducom/view/1081216htm
字符串函数
LTrim$(字符串):去掉字符串左边的空白字符
Rtrim$(字符串):去掉字符串右边的空白字符
Left$(字符串,n):取字符串左部的n个字符
Right$(字符串,n):取字符串右部的n个字符
Mid$(字符串,p,n):从位置p开始取字符串的n个字符
Len(字符串):测试字符串的长度
String$(n,字符串):返回由n个字符组成的字符串
Space$(n):返回n个空格
InStr(字符串1,字符串2):在字符串1中查找字符串2
Ucase$(字符串):把小写字母转换为大写字母
Lcase$(字符串):把大写字母转换为小写字母
窗体输入输出函数
Print(字符串):在窗体输出字符串,可以用”&”对变量进行连接后输出
Tab(n):把光标移到该行的n开始的位置
Spc(n):跳过n个空格
Cls:清除当前窗体内的显示内容
Move 左上角x,左上角y,宽度,高度:移动窗体或控件
InputBox(prompt,…):跳出一个数据输入窗口,返回值为该窗口的输入值
MsgBox(msg,[type]…):跳出一个提示窗口文件 *** 作函数
Open 文件名 [For方式] [Access存取类型] [锁定] AS [#]文件号 [Len=记录长度]
功能:为文件的输入输出分配缓冲区,并确定缓冲区所使用的存取方式
说明:
方式:指定文件的输入输出方式,可选,默认是Random,可以是以下值
Output:指定顺序输出方式,将覆盖原有内容
Input:指定顺序输入方式
Append:指定顺序输出方式,在文件未尾追加内容
Random:指定随机存取方式,也是默认方式,在Random方式时,如果没有Access子句,则在执行Open语句时,VB将按下列顺序打开文件:读/写、只读、只写
指定二进制文件。在这种方式下,可以用Get和Put语句对文件中任何字节位置的信息进行读写。在Binary方式中,如果没有Access子句,则打开文件的类型与Random方式相同
2)、存取类型:放在关键字Access之后,用来指定访问文件的类型。可以是下列类型之一
Read:打开只读文件
Write:打开只写文件
Read Write:打开读写文件。这种类型只对随机文件、二进制文件及用Append方式打开的文件有效
3)、锁定:该子句只在多用户或多进和环境中使用,用来限制其他用户或其他进程对打开进行读写 *** 作。锁定类型包括:
默认:如不指定锁定类型,则本进程可以多次打开文件进行读写;在文件打开期间,其他进程不能对该文件执行读写 *** 作
Lock Shared:任何机器上的任何进程都可以对该文件进行读写 *** 作
Lock Read:不允许其他进程读该 文件。只在没有其他Read存取类型的进程访问该文件时,才允许这种锁定。
Lock Write:不允许其他进程写这个文件。只在没有其他Write存取类型的进程访问该文件时,才允许这种锁定
Lock Read Write:不允许其他进程读写这个文件
如果不使用lock子句,则默认为Lock Read write
4)、文件号:由用户自行指定一个由1~511之间的整数,只要该文件号未被使用就合法;打开文件后,可以用该文件号进行读写等 *** 作
5)、记录长度:是一个整型表达式。当选择该参量时,为随机存取文件设置记录长度。对于用随机访问方式打开的文件,该值是记录长度;对于顺序文件,该值是缓冲字符数。”记录长度”不能超过32767字节。对于二进制文件,将忽略Len子句
举例:Open “pricedat” for Output as #1
Open “C:\abcdat” for radom as #1 len=256Close [#文件号][,#文件号]……:关闭文件
Seek #文件号,位置:文件指针跳到指定位置,以字节为单位。取值1~pow(2,31)-1
Seek (文件号):返回当前文件指针的位置
FreeFile():取得一个未使用的文件号
Loc(文件号):返回指定文件的当前读写位置
LOF(文件号):返回文件长度
EOF(文件号):用来测试文件是否结束,结束返回true
Print #文件号,变量1,变量2,…变量n:按顺序将各变量的值写入顺序文件
如果是print #文件号,则写入空行
Write #文件号,表达式表…:作用同Print
Input #文件号,变量表…:读顺序文件,进行与Print相反的 *** 作
Line Input #文件号,字符串变量:从顺序文件中读入一行
Input$(n,#文件号):从顺序文件读出n个字符的字符串
Put #文件号,[记录号],变量:把除对象变量和数组变量外的任何变量(包括号含有单个数组元素的下标变量)的内容写入随机文件。
例如:Put #2,,filebuff
Get #文件号,[记录号],变量:读随机文件,执行与put相反的 *** 作
Get|put #文件号,[位置],变量:读写二制文件,位置是指下一次读写 *** 作的位置。
Kill 文件名:删除文件
FileCopy 源文件名,目标文件名:复制文件
Name原文件名 as 新文件名:重命令文件
Print""; Tab(1);
Spc函数
Spc(n)
Space$(8)格式输入函数
Format$()
Format 函数示例
本示例显示用 Format 函数做格式化输出的不同用法对于日期分隔号(/),时间分隔号(:),以及 AM/ PM 等文本而言,其真正的显示格式会因计算机上的国际标准不同而有所差异在开发阶段,日期与时间是以短日期的格式,配合代码的国际标准来显示的而在运行时,短日期则是根据系统的国际标准而定,而系统的国际标准和代码的国际标准可能并不相同本示例中是假设国际标准为 English/United StatesMyTime 及 MyDate 在开发环境下,使用系统的短日期设置显示出来的Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#' 以系统设置的长时间格式返回当前系统时间
MyStr = Format(Time, "Long Time")' 以系统设置的长日期格式返回当前系统日期
MyStr = Format(Date, "Long Date")MyStr = Format(MyTime, "h:m:s") ' 返回 "17:4:23"
MyStr = Format(MyTime, "hh:mm:ss AMPM") ' 返回 "05:04:23 PM"
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' 返回 "Wednesday, Jan 27 1993"
' 如果没有指定格式,则返回字符串
MyStr = Format(23) ' 返回 "23"' 用户自定义的格式
MyStr = Format(54594, "##,##000") ' 返回 "5,45940"
MyStr = Format(3349, "###000") ' 返回 "33490"
MyStr = Format(5, "000%") ' 返回 "50000%"
MyStr = Format("HELLO", "<") ' 返回 "hello"
MyStr = Format("This is it", ">") ' 返回 "THIS IS IT"
用户自定义字符串格式 (Format 函数)。 可以用下面任意字符来创建格式表达式用于字符串:字符 说明@ 字符占位符。显示字符或是空白。如果字符串在格式字符串中 @的位置有字符存在,那么就显示出来;否则,就在那个位置上显示空白。除非有惊叹号字符 (!) 在格式字符串中,否则字符占位符将由右而左被填充。& 字符占位符。显示字符或什么都不显示。如果字符串在格式字符串中和号 (&) 的位置有字符存在,那么就显示出来;否则,就什么都不显示。除非有惊叹号字符 (!) 在格式字符串中,否则字符占位符将由右而左被填充。< 强制小写。将所有字符以小写格式显示。> 强制大写。将所有字符以大写格式显示。! 强制由左而右填充字符占位符。缺省值是由右而左填充字符占位符。 From MSDN For VB6 Format 函数
返回 Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。语法Format(expression[, format[, firstdayofweek[, firstweekofyear]]])Format 函数的语法具有下面几个部分:部分 说明
expression 必要参数。任何有效的表达式。
format 可选参数。有效的命名表达式或用户自定义格式表达式。
firstdayofweek 可选参数。常数,表示一星期的第一天。
firstweekofyear 可选参数。常数,表示一年的第一周。 设置值firstdayofweek 参数有下面设置:常数 值 说明
vbUseSystem 0 使用 NLS API 设置。
VbSunday 1 星期日(缺省)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六 firstweekofyear 参数有下面设置:常数 值 说明
vbUseSystem 0 使用 NLS API 设置。
vbFirstJan1 1 从包含一月一日的那一周开始(缺省)。
vbFirstFourDays 2 从本年第一周开始,而此周至少有四天在本年中。
VbFirstFullWeek 3 从本年第一周开始,而此周完全在本年中。 说明格式化 作法
数字 使用预先定义的命名数值格式或创建用户自定义数值格式。
日期和时间 使用预先定义的命名日期/时间格式或创建用户自定义日期/时间格式。
日期和时间序数 使用日期和时间格式或数值格式。
字符串 创建自定义的字符串格式。 如果在格式化数字时没有指定 format,Format 会提供与 Str 函数类似的功能,尽管它是国际化的。然而,以 Format 作用在正数上不会保留正负号空间,而以 Str 的话则会InputBox
a=InputBox("请输入你的名字","提示","盖茨",3000,5000)
Print ""&type语句
可以··
Type 语句
在模块级别中使用,用于定义包含一个或多个元素的用户自定义的数据类型。语法[Private | Public] Type varname
elementname [([subscripts])] As type
[elementname [([subscripts])] As type]
End TypeType 语句的语法包含下面部分:部分 描述
Public 可选的。用于声明可在所有工程的所有模块的任何过程中使用的用户定义类型。
Private 可选的。用于声明只能在包含该声明的模块中使用的用户自定义的类型。
varname 必需的。用户自定义类型的名称;遵循标准的变量命名约定
elementname 必需的。用户自定义类型的元素名称。除了可以使用的关键字,元素名称也应遵循标准变量命名约定。
subscripts 可选的。数组元素的维数。当定义大小可变的数组时,只须圆括号。subscripts 参数使用如下语法:
[lower To] upper [,[lower To] upper]
如果不显式指定 lower,则数组的下界由 Option Base 语句控制。如果没有 Option Base 语句则下界为 0。
type 必需的。元素的数据类型;可以是Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(对变长的字符串)、String length(对定长的字符串)、Object、Variant、其它的用户自定义的类型或对象类型。
说明Type 语句只能在模块级使用。使用 Type 语句声明了一个用户自定义类型后,就可以在该声明范围内的任何位置声明该类型的变量。可以使用 Dim、Private、Public、ReDim 或 Static 来声明用户自定义类型的变量。在标准模块中,用户自定义类型按缺省设置是公用的。可以使用 Private 关键字来改变其可见性。而在类模块中,用户自定义类型只能是私有的,且使用 Public 关键字也不能改变其可见性。
Val 函数
返回包含于字符串内的数字,字符串中是一个适当类型的数值。
语法
Val(string)
必要的 string 参数可以是任何有效的字符串表达式
说明
Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。
下面的返回值为 1615198:
Val(" 1615 198th Street NE")
在下面的代码中,Val 为所示的十六进制数值返回十进制数值 -1。
Val("&HFFFF")
注意 Val 函数只会将句点()当成一个可用的小数点分隔符。当使用不同的小数点分隔符时,如在国际版应用程序中,代之以 CDbl 来把字符串转换为数字。
Val 函数示例
本示例使用 Val 函数返回字符串中所含的数值。
Dim MyValue
MyValue = Val("2457") ' 返回 2457。
MyValue = Val(" 2 45 7") ' 返回 2457。
MyValue = Val("24 and 57") ' 返回 24。
string(number,character)作用是产生字符串,其中character就是你需要生成的字符,number是生成的个数,比如string(3,"h")就会生成3个h,注意的是character是字符,不是字符串,即使你写入字符串也只读入一个字符string(3,"h符合规定")生成的还是3个h。
String 实际上就是OLE标准的BSTR
在Windows SDK中的定义:
typedef OLECHAR BSTR;
typedef WCHAR OLECHAR;
typedef wchar_t WCHAR;
所以,它实际上是宽字符指针。
前置四字节,内置字串的长度,后面是字串内容,原则上并不以'/0'结尾,长度由前置值决定。所以,它又不简简单单就是宽字符指针。但从基本类型定义上来看,它与宽字符指针是可以划等号的。
扩展资料
实际上是地址,是字串的首地址(注意:不是长度的首地址) 另外,String是可以装载中间带'/0'字符的字串的,只不过,一些显示函数可能将其省略。如:dim str as string str = "ab" & chr(0) & "cd" MsgBox str '输出:ab DebugPrint str '输出 ab cd
分配:SysAllocStringLen SysAllocString释放:SysFreeString取长度:SysStringLen注意:分配得到的BSTR,实际上仍然是以'/0'结尾。SysStringLen似乎有点儿英雄无用武之地。
比如:SysAllocStringLen 的说明文档:Allocates a new string, copies cch characters from the passed string into it, and then appends a null character
——string类
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)