求教::
返回的字符串如下:
<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,然后取节点的属性