跪求LEN函数使用方法!

forest8888 2006-06-25 12:22:47
我需要把一个数据库里的一个字段里的
"|20|80|33|26|"
"|20|80|11|"
"|20|35|33|19|"
"|20|29|13|"

我只需要最后一个|这之间|的数字
我用righi(变量,len(变量)-1)
得到的值永远都是0

请问各位高手。
这个到底怎么才能取到最后两个“|”之间的值?

...全文
2235 50 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
50 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingkiosk 2006-06-29
  • 打赏
  • 举报
回复
楼主
数据库是不是定义的不规范?
试定义到3范式应该就没有这个问题出现了吧?
ly_fly 2006-06-29
  • 打赏
  • 举报
回复
up
zq972 2006-06-29
  • 打赏
  • 举报
回复
split----正解

居然有这么多回帖,我也来凑热闹,嘿嘿
Kevin_jun 2006-06-29
  • 打赏
  • 举报
回复

str = substring(0,str.lastindex("|")-1) / substring(0,str.length-1)
result = substring(str.lastindex("|"),str.length)
kook366 2006-06-28
  • 打赏
  • 举报
回复
用RIGHT呀
jspadmin 2006-06-27
  • 打赏
  • 举报
回复
to 楼上的,可以在左边的导航的-我的技术社区-修改我的社区信息-您在社区的泥称
修改,修改后,再回复就看到效果了
wzy520 2006-06-27
  • 打赏
  • 举报
回复
朋友,你们的用户名后的()里的文字是怎样设置的呀,我的用户名后的()里是空的!请问在括号里写文字怎么写啊?
forest8888 2006-06-27
  • 打赏
  • 举报
回复
??????
jixiaojie 2006-06-27
  • 打赏
  • 举报
回复
不好意思,发错了
jixiaojie 2006-06-27
  • 打赏
  • 举报
回复

declare @str varchar(100)

set @str='|20|35|33|100|'

select replace(right(@str,patindex ('%[0-9]|%',reverse(@str))),'|','')
forest8888 2006-06-27
  • 打赏
  • 举报
回复
of123() :
按您的方法
msl="|20|1|"
mgetstr="" 这行为空了。
of123 2006-06-27
  • 打赏
  • 举报
回复
msl = Len(msl) => msl = Len(m_str)
forest8888 2006-06-27
  • 打赏
  • 举报
回复
我按zcsor的方法。
|20|80|33|26|

最后代码为:
Dim mgetstr As String, ms As String
Dim m_str As String, msl As Long
m_str = rctTemp.Fields("map").Value
msl = Len(msl)
mgetstr = Replace(Right(m_str, msl - InStrRev(m_str, "|", msl - 1)), "|", "") '
rctIN.Fields("ParentID").Value = mgetstr

得到的结果是最后为:
26

但今天发现要取倒数第二位时出现问题了。数组为:"|20|1|76|100|"只能取到00
dong127 2006-06-27
  • 打赏
  • 举报
回复
split当然是最方便最快捷的了~

其次就是自己截字符串了

Private Sub Form_Load()

x = "|20|80|33|26|"
arry = Split(x, "|")
MsgBox arry(UBound(arry) - 1)

y = InStrRev(x, "|", Len(x) - 1)
MsgBox Mid(x, y + 1, Len(x) - y - 1)
End Sub
SimpleDay 2006-06-27
  • 打赏
  • 举报
回复
ss[]=split(string1)
string2=ss[ss.length(-1)]
string2=string2.replace("|","")
string2=string2.trim()

……这几天在转C# 。。。都混了。。
hwyqy 2006-06-26
  • 打赏
  • 举报
回复
楼主这个不用跪求吧,这年头真是什么都不值钱了

用Split+Ubound,InstrRev+Right+Len都能得到结果
一笑拔剑 2006-06-26
  • 打赏
  • 举报
回复

完了
又一个问题被人解决了
zouhuiyong 2006-06-26
  • 打赏
  • 举报
回复
dim sary() as string=s1.split("|")
sary(ubound(sary)-1)就是你所要的!
还想懒够 2006-06-26
  • 打赏
  • 举报
回复
9494,我都郁闷了老半天,为啥一直就没人提Split函数呢
netcha 2006-06-26
  • 打赏
  • 举报
回复
。。。分割到数组中去,最后一个非空的元素就是了。
加载更多回复(30)

7,785

社区成员

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

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