powerbuilder中,如果我要取"abcdEF 12345"这个字符串中的12345这几个数字,怎么实现啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了powerbuilder中,如果我要取"abcdEF 12345"这个字符串中的12345这几个数字,怎么实现啊?相关的知识,希望对你有一定的参考价值。

powerbuilder中,如果我要取"abcdEF 12345"这个字符串中的12345这几个数字,怎么实现啊?("EF"后肯定是空格,然后紧接着数字)
用pos,mid,还是match啊?
举例子给我看看
一楼可以是可以,但是不够通用性,比如说我想通过输入一组字符串来取"EF "后面的数字,而数字的长度是不定的,那么又怎么判定呢?

参考技术A 你先确定一下你的需求,楼上的回答得很详细了,如果12345是固定的,那你又可以确定宽度,用楼上的方法就可以了
如果你只确定位置和要取的字符串长度,可以用mid函数
如果只是知道要取的字符串,不知道位置,可以用pos函数取位置,结合mid函数取出内容
=============
那很简单啊
我们假定EF后面跟的是空格,而EF前边的字符不固定

long ll_pos,ll_len
string ls_str

ls_str = 'abcdEF 12345'
ll_pos = pos(ls_str,'EF')

ls_rtn = trim(mid(ls_str,ll_pos + 2))

messagebox('返回结果',ls_trn)
==================
具体还要根据你的需求而定
参考技术B pos函数是判断字符串中子串的位置的,返回的值是long类型;mid函数需要指定从什么位置开始取固定长度的子串,不指出子串长度默认是从开始位置之后的子串;match函数,是判断字符串中是否包含指定的子字符串的。Left和Right函数较为简单一些,一般情况下取子串会结合Trim()函数使用的,这个函数是为了去掉左边和右边字符串的空格。代码:
String ls_str,ls_substr
ls_str='abcdEF 12345'
ls_substr=Right(Trim(ls_str),5)
messagebox('ls_substr',ls_substr) //
参考技术C Long ll_len,ll_i
String ls_num
ll_len = Len(sle_1.text)
ll_i = Pos(sle_1.text,"F",1)
ls_num = Right(sle_1.text,Len(sle_1.text) - (ll_i + 1) )本回答被提问者采纳

以上是关于powerbuilder中,如果我要取"abcdEF 12345"这个字符串中的12345这几个数字,怎么实现啊?的主要内容,如果未能解决你的问题,请参考以下文章

用PowerBuilder怎么编程时,怎么调用帮助文件?

powerbuilder怎么创建表格统计数据窗口和图形统计数据窗口。最好有具体的步骤

powerbuilder10.5 滚动显示 控件

powerbuilder嵌套查询不能从单文本框中取值

powerbuilder中怎样新建一个pbl文件

powerbuilder怎么提取pbl代码