首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

PB 怎么截取这种字符串

2012-08-17 
PB 如何截取这种字符串求教::返回的字符串如下:ROW PatientID20720662 HospNo2012016015 PatName

PB 如何截取这种字符串

求教::
返回的字符串如下:
<ROW PatientID="20720662" HospNo="2012016015" PatName="黄伯燕" Sex="2" Age="20" AgeUnit="岁" WardOrReg="0" ChargeType="01 " CureNo="20720662" CardNo="1101299158" ApplyDept="7172" IDNum="311111111111111111" Phone="" Address="" Zip=" "/>

想要实现截取每个字段的值(双引号内的,长度不同,位置也不同,因为分为两种类型,住院的和门诊的,返回信息也不一样)

比如我要截取:patname,长度不同,位置不定



请各位指教!


[解决办法]
通过POSW函数来判断PatName="的位置,然后再判断PatName="后对应的"的位置,然后再通过MIDW来取相应位置的值。
[解决办法]
使用 pos 函数 查询 指定字符串 在 另一个字符串 中的起始位置。。

先查 patname ,再查询 2个【“】

然后 对所有需要分析的字段 全部 做一堆函数。。。或者 先做个函数。。参数为 (需要查询的字符串,类型),【类型】是指 住院或者 门诊 。。。。返回结果为 字符串 对应的 后面 括号 里面的内容。。。
[解决办法]
你确信都是用空格分隔?那就自己写个字符串转数组的函数,然后循环从数组中一个个取就行了,一劳永逸。不会写函数自己去搜吧,一搜一把
[解决办法]
用pos函数来实现,先找 PatName=",然后再往后找到"的位置,截取中间的字符串就可以了


string ls_data, ls_value
long ll_pos, ll_next

ls_data = '<ROW PatientID="20720662" HospNo="2012016015" PatName="黄伯燕" Sex="2" Age="20" Ag"'
ll_pos = pos(ls_data, 'PatName="')
if ll_pos > 0 then
ll_next = pos(ls_data, '"', ll_pos + 9)
if ll_next > 0 then
ls_value = mid(ls_data, ll_pos + 9, ll_next - ll_pos - 9)
messagebox('', ls_value)
end if
end if
[解决办法]
用PBDOM构建XML,然后取节点的属性

热点排行