导航
  • 全部
...

关于vb函数InstrRev用法遇到的奇怪问题!!!!急啊!!!

westken 2004-08-26 09:17:04
以下是msdn中关于InstrRev函数的用法:
描述:
返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起

语法:
InstrRev(string1, string2[, start[, compare]])

InstrRev函数语法有如下几部分:
string1 必需的。要执行搜索的字符串表达式。
string2 必需的。要搜索的字符串表达式。
start 可选的。数值表达式,设置每次搜索的开始位置。如果忽略,则使用–1,它表示从上一个字符 位置开始搜索。如果start包含
Null,则产生一个错误。

compare 可选的。数字值,指出在判断子字符串时所使用的比较方法。如果忽略,则执行二进制比较。关于其值,请参阅“设置值”部分。

我现在想得到一个字符串从后面算起小数点所在的位置,代码如下:
Dim a As String
Dim i As Integer

a = 3.45
i = InStrRev(a, ".")
MsgBox i
为什么i得到的值是2,而不是3呢,百思不得其解啊,是不是我对这个函数的用法会意错了呢??
大家给我支个招啊!!!谢谢了!!!!
...全文
给本帖投票
582 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwolves 2004-08-26
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim a As String
Dim i As Integer

a = 3.45
i = InStrRev(StrReverse(a), ".")
MsgBox i
westken 2004-08-26
  • 打赏
  • 举报
回复
谢谢大家,看来真的没有直接用的函数啊!!
zyl910 2004-08-26
  • 打赏
  • 举报
回复
我的意思是说从末尾开始排序,有什么函数吗???
我自己写了一个,可以完成

================================

使用StrReverse反转字符串




StrReverse函数


描述

返回一个字符串,其中一个指定子字符串的字符顺序是反向的。

语法

StrReverse(string1)

参数string1是一个字符串,它的字符顺序要被反向。如果string1是一个长度为零的字符串(""),则返回一个长度为零的字符串。如果string1为Null,则产生一个错误。
zyl910 2004-08-26
  • 打赏
  • 举报
回复
InStr、InStrRev都是返回字符位置
只是查找的顺序不同

InStrRev大致实现:

dim pos as long

pos=len(findstr)
do while strcomp(maskstr,mid(findstr,pos,1),compmode)<>0
pos=pos+1
loop
zdcwin 2004-08-26
  • 打赏
  • 举报
回复
Dim s As String
Dim r As Integer

s = "1.12.123.1234"
r = Len(s) + 1 - InStrRev(s, ".")

这时r为5
westken 2004-08-26
  • 打赏
  • 举报
回复
那怎么样才能真正是从末尾开始算呢,我的意思是说从末尾开始排序,有什么函数吗???
我自己写了一个,可以完成,不过我想知道vb自己有没有这样的函数??
laviewpbt 2004-08-26
  • 打赏
  • 举报
回复
有收获
zyl910 2004-08-26
  • 打赏
  • 举报
回复
比如对于“1.12.123.1234”

InStr返回2
InStrRev返回9
zyl910 2004-08-26
  • 打赏
  • 举报
回复
InstrRev改变的只是查找顺序
zyl910 2004-08-26
  • 打赏
  • 举报
回复
本来“.”是在第二个字符阿

7,784

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部