admin 管理员组

文章数量: 1087135


2024年5月6日发(作者:linux是什么公司)

VB中InStr函数的功能及用法

返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。

语法

InStr([

start

, ]

string1

,

string2

[,

compare

])

InStr 函数的语法具有下面的参数:

部分 说明

可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字

符的位置开始。如果

start

包含 Null,将发生错误。如果指定了

compare

参数,则一定要有

start

参数。

start

string1

string2

Compare

必要参数。接受搜索的字符串表达式。

必要参数。被搜索的字符串表达式。

可选参数。指定字符串比较。如果

compare

是 Null,将发生错误。如果

省略

compare

,Option Compare 的设置将决定比较的类型。

设置

compare

参数设置为:

常数

vbUseCompareOption

-1

描述

使用Option Compare 语句设置执行一

个比较。

vbBinaryCompare

vbTextCompare

vbDatabaseCompare

0

1

2

执行一个二进制比较。

执行一个按照原文的比较。

仅适用于Microsoft Access,执行一个基于

数据库中信息的比较。

返回值

如果

InStr返回

0

Null

string1

为零长度

string1

为 Null

string2

为零长度

string2

为 Null

string2

找不到

Start

Null

0

在 string1

中找到

string2

找到的位置

start

>

string2

说明

InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不

是字符位置。

0

【示例】

本示例使用 InStr 函数来查找某字符串在另一个字符串中首次出现的位置。

Dim SearchString, SearchChar, MyPos

SearchString ="XXpXXpXXPXXP" ' 被搜索的字符串。

SearchChar = "P" ' 要查找字符串 "P"。

' 从第四个字符开始,以文本比较的方式找起。返回值为 6(小写 p)。

' 小写 p 和大写 P 在文本比较下是一样的。

MyPos = Instr(4, SearchString, SearchChar, 1)

' 从第一个字符开使,以二进制比较的方式找起。返回值为 9(大写 P)。

' 小写 p 和大写 P 在二进制比较下是不一样的。

MyPos = Instr(1, SearchString, SearchChar, 0)

' 缺省的比对方式为二进制比较(最后一个参数可省略)。

MyPos = Instr(SearchString, SearchChar) ' 返回 9。

MyPos = Instr(1, SearchString, "W") ' 返回 0。

【备注】

InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位

置,而不是字符位置。

函数值类型和函数功能如下表所示。

字符串函数

函数名

函数值类型

功能

举例

Chr$(N)

String

求以N为ASCII码的字符

Chr(65)=“A”

Str$(N)

String

将N转换为字符串,如果N>0,则返回的字符串中包含一个前导空格,暗示

有一个正号

Str$(-12345)=“-12345”

Str(12345)= “ 12345”

Len(C)

Long

求字符串C中包含的字符个数

Len(“Abab字符串4")=8

Ucase$(C)

String

将字符串C中的小写英文字母转换成大写英文字母

Ucase(“abABabc")="ABABABC"

Lcase$(C)

String

将字符串C中的大写英文字母转换成小写英文字母

Ucase(“abABabc")="abababc"

Space$(N)

String

产生N个空格组成的字符串

Len(Space(6))=6

String$(N,C)

String

产生N个由C指定的第一个字符组成的字符串,C可以是ASCII码数

String(6,”ABC”)=“AAAAAA”

String(6,65)=“AAAAAA”

Left(C,N)

String

从字符串C的最左边开始,截取N个字符

Left$(“ABCDEF",3)="ABC”

Right$(C,N)

String

从字符串C的最右边开始,截取N个字符

Right$ (“ABCDEF",3)="DEF”

Mid$(C,N1 [,N2 ])

String

从字符串C中N1指定的起始位置处开始,截取N2个字符

Mid(“ABCDEF”,2,3)=”BCD”

Mid(“ABCDEF”,2)=”BCDEF”

Ltrim$(C)

String

删除字符串C中的前导空格

Ltrim(“ ABCD ”)="ABCD ”

Rtrim$(C)

String

删除字符串C中的尾部空格

Ltrim(“ ABCD ”)=" ABCD”

Trim$(C)

String

删除字符串参数中的前导和尾部空格

Ltrim(“ ABCD ”)="ABCD”

StrComp(C1,C2[,N])

Integer

比较字符串C1和字符串C2的大小,N是比较类型,取值0、1或2

StrComp(“ABC",”abc",1)=0

StrComp(“ABC",”abc",0)=-1

StrComp(“abc ",” ABC ",0)=1

InStr([N1,]C1,C2[,N2])

Integer

在字符串C1中,从N1开始到N2位置,开始找C2,省略N1时从C1头开始

找,省略N2时找到C1尾止。找不到时,函数值为0

InStr(2,”ABCDE”,”C”,4)=3

InStr(2,”ABCDEF”,”CDE”)=3

InStr(”ABCDEFGH”,”CDE”)=3

InStr(”ABCDEFGH”,”XY”)=0

说明:(1)表中的C表示是字符串表达式,表中的N表示是数值表达式

(2)对于数值函数Val(C),逗号“,”和美圆符号“$”,都不能被识别;空

格、制表符和换行符都将从参数中去掉;当遇到字母E或D 时,将其按单精度

或双精度实型浮点数处理。

(3)LenB(C)函数与Len(C)函数功能相近,只不过LenB函数求的是字符

串的字节数,而不是字符串中字符的个数。例如:LenB(“ABCabc123")=18,

LenB(“字符串”)=6。

(4)对于产生字符串函数String$(N,C),其中,C参数可以为任何有效

的数值表达式或字符串表达式,如果为数值表达式,则表示组成字符串的字符的

ASCII码;如果为字符串表达式,则其第一个字符将用于产生字符串。

(5)对于字符串左截函数Left(C,N),N参数为数值表达式,其值指出函

数值中包含多少个字符,如果其值为0,则函数值是长度为零的字符串(即空串);

如果其值大于或等于字符串C中的字符数,则函数值为整个字符串。

LeftB函数与Left函数功能相近,只不过LeftB函数求的是字符串的字节

数,而不是字符串中字符的个数。LeftB(“ABCDE”,6)=”ABC”。

(6) 对于字符串右截取函数Right(C,N),N参数为数值表达式,其值指出

函数值中包含多少个字符。如果其值为0,则函数值为空串;如果其值大于或等

于字符串C中的字符个数,则函数值为整个字符串。

RightB函数与Right函数功能相近,只不过RightB函数求的是字符串的

字节数,而不是字符串中字符的个数。RightB(“ABCDE”,6)=”CDE”。

(7)N1是数值表达式,其值表示开始截取字符的起始位置。如果该数值

超过字符串C中的字符数,则函数值为空串。N2是数值表达式,其值表示要截

取的字符数。如果省略该参数,则函数值将包含字符串C中从起始位置到字符

串末尾的所有字符。

MidB函数与Mid函数功能相近,只不过MidB函数求的是字符串的字节

数,而不是字符串中字符的个数。例如:MidB(“ABCDEFG”,5,8)=”CDEF”。

(8)因为将一字符串赋值给一定长字符串变量时,如字符串变量的长度

大于字符串的长度,则用空格填充该字符串变量尾部多余的部分,所以在处理定

长字符串变量时,删除空格的Ltrim和Rtrim函数是非常有用的。

(9)对于字符串比较函数StrComp(C1,C2[,N] ),N是指定字符串的比较

类型。比较类型可以是0、1或2,若比较类型为0,则执行二进制比较,此时英

文字母区分大小写;若比较类型为1,则执行文本比较,此时英文字母不区分大

小写;若比较类型为2,则是执行基于数据库信息的比较,仅对Microsoft Access

起作用。若省略该参数,则默认比较类型为0。

当字符串C1小于字符串C2时,函数值为—1;当字符串C1等于字符串

C2时,函数值为0:当字符串C1大于字符串C2时,函数值为1。


本文标签: 字符串 函数 字符 表达式 参数