当前位置: 代码迷 >> VFP >> 文本处理,请 lygcw9602,dkfdtf指导,多谢
  详细解决方案

文本处理,请 lygcw9602,dkfdtf指导,多谢

热度:9773   发布时间:2013-02-26 00:00:00.0
文本处理,请 lygcw9602,dkfdtf指导,谢谢
文本处理,怎么把表1括号里的数字提取处理,变成表2?

请 lygcw9602,dkfdtf指导,,谢谢
-----------------------------
表1:

电子办公楼-1【58】98H(企业)
电子办公楼-2【5812】98H(企业)
小区D区1(816)-986k
高科技公司-1【5781】981H(企业)
村市场-1 -(5814)9839H(公众)
商务酒店-1[5681]zx980H(政企)
花园2(781)-9806H
商业楼4A1栋2楼-1【5381】-ZX983H
配送中心-2[5816]908H(公众)
XMBE2DZLS-R1-项目部二队资料室-【5904】D822(企业)
SSL1HRDJ-R1-宿舍楼1号弱电井【5905】
宿舍1楼楼梯间-(5900)R833(公众)
XJF-K1-新机房(5682)-06H
GYQYGSS2L-m1工业区员工宿舍2楼[5265]F899

----------------------------------------------------
表2:

电子办公楼-1【58】98H(企业) 58
电子办公楼-2【5812】98H(企业) 5812
小区D区1(816)-986k 816
高科技公司-1【5781】981H(企业) 5781
村市场-1 -(5814)9839H(公众) 5814
商务酒店-1[5681]zx980H(政企) 5681
花园2(781)-9806H 781
商业楼4A1栋2楼-1【5381】-ZX983H 5381
配送中心-2[5816]908H(公众) 5816
XMBE2DZLS-R1-项目部二队资料室-【5904】D822(企业) 5904
SSL1HRDJ-R1-宿舍楼1号弱电井【5905】 5905
宿舍1楼楼梯间-(5900)R833(公众) 5900
XJF-K1-新机房(5682)-06H 5682
GYQYGSS2L-m1工业区员工宿舍2楼[5265]F899 5265



------解决方案--------------------------------------------------------
SQL code
*-- vfp9 代码Create Cursor 表1 (f1 c(100))Insert Into 表1 (f1) Values ('电子办公楼-1【58】98H(企业)')Insert Into 表1 (f1) Values ('电子办公楼-2【5812】98H(企业)')* ...Insert Into 表1 (f1) Values ('GYQYGSS2L-m1工业区员工宿舍2楼[5265]F899')Select f1, ;  Cast(Strextract(Chrtranc(Chrtranc(f1, '【((', '[[['), '】))', ']]]'), '[', ']') As c(10)) As f2 ;  From 表1 Into Cursor 表2Browse
------解决方案--------------------------------------------------------
探讨
REPLACE A2 WITH ALLTRIM(A1)+" "+STREXTRACT(A1,"【","】") FOR VAL(STREXTRACT(A1,"【","】"))>0
REPLACE A2 WITH ALLTRIM(A1)+" "+STREXTRACT(A1,"(",")") FOR VAL(STREXTRACT(A1,"(",")"))>0
REPLACE A2 WITH ALLTRIM(A1)+" "+STREXTRACT(A1,"(",")") FOR VAL(STREXTRACT(A1,"(",")"))>0
REPLACE A2 WITH ALLTRIM(A1)+" "+STREXTRACT(A1,"[","]") FOR VAL(STREXTRACT(A1,"[","]"))>0

------解决方案--------------------------------------------------------
REPLACE ALL A2 WITH ALLTRIM(A1)+" "+substrc(a1,atcc("【",a1)+1,atcc("】",a1)-atcc("【",a1)-1) FOR VAL(substrc(a1,atcc("【",a1)+1,atcc("】",a1)-atcc("【",a1)-1))>0
REPLACE ALL A2 WITH ALLTRIM(A1)+" "+substrc(a1,atcc("(",a1)+1,atcc(")",a1)-atcc("(",a1)-1) FOR VAL(substrc(a1,atcc("(",a1)+1,atcc(")",a1)-atcc("(",a1)-1))>0
REPLACE ALL A2 WITH ALLTRIM(A1)+" "+substrc(a1,atcc("(",a1)+1,atcc(")",a1)-atcc("(",a1)-1) FOR VAL(substrc(a1,atcc("(",a1)+1,atcc(")",a1)-atcc("(",a1)-1))>0
REPLACE ALL A2 WITH ALLTRIM(A1)+" "+substrc(a1,atcc("[",a1)+1,atcc("]",a1)-atcc("[",a1)-1) FOR VAL(substrc(a1,atcc("[",a1)+1,atcc("]",a1)-atcc("[",a1)-1))>0
------解决方案--------------------------------------------------------
探讨
谢谢,各位朋友帮忙。VFP6.0有没有类似STREXTRACT的函数?