注册 登录
编程论坛 VFP论坛

请教一个拆分字符串的问题

fanjinyu9108 发布于 2021-07-04 15:08, 1837 次点击
有一个字符串,比如"adc,adsf,cce,frtye"这样一个大字符串,生成大字符串的时候,我并不知道每个小字符串有多长,我想实现以下功能 一 能否把以逗号分隔的小字符串分离出来,存入到数据表里面,数据表里面分别有adc adsf cce frtye这几条记录。
二 比如我想删除大字符串里面adsf的小字符串,变成"adc,cce,frtye" ,如何实现。
9 回复
#2
sdta2021-07-04 15:16
aa = "adc,adsf,cce,frtye"
* 问题一:
lnCnt = alines(la, aa, ",")
dimension la[1, alen(la)]
lcStr = "a1 c(10)"
for lnj = 2 to lnCnt
    lcStr = lcStr + ", a" + transform(lnj) + " c(10)"
endfor
create cursor test (&lcStr)
insert into test from array la
browse
* 问题二:
aa = strtran(aa, "adsf,", "")
?aa
#3
fanjinyu91082021-07-04 17:12
sdta师傅真是神啊,这些函数我都没见过
#4
fanjinyu91082021-07-05 07:19
sdta师傅,非常感谢您的解答,但是我还有问题三,就是有时还要往里面大字符串添加小字符串,在"adc,adsf,cce,frtye"里添加"yyy", 添加之前,先要判断"yyy"是否在大字符串里面,如果不在,就添加,如果在,就不添加,如何做这个判断呢?
#5
sdta2021-07-05 07:46
* 问题三:
aa = "adc,adsf,cce,frtye, byyyc"
bb = "yyy"
alines(la, aa, ",")
*防止aa中有类似byyyc情况出现,不能使用$,at()等
if ascan(la,bb)=0
    aa = aa + "," + bb
endif
? aa
#6
radiofan2021-07-05 08:07
inlist(aa,bb)
#7
laowan0012021-07-06 14:49
local xresult[1],xchr
xchr = 'adc,adsf,cce,frtye'
alines(xresult,xchr,2,',')

messagebox(xresult[1])
messagebox(xretult[2])
messagebox(xretult[3])
#8
sdta2021-07-07 11:28
回帖的内容最好经过验证后再发出
#9
fanjinyu91082021-07-07 17:42
非常感谢sdta师傅的解答,我今天在做别的模块,明天来弄这个,有疑问再来问,今天先结贴,再次感谢。
#10
laowan0012021-07-08 08:13
以下是引用sdta在2021-7-7 11:28:15的发言:

回帖的内容最好经过验证后再发出


变量名写错了,多谢指正

local xresult[1],xchr
xchr = 'adc,adsf,cce,frtye'
alines(xresult,xchr,2,',')

messagebox(xresult[1])
messagebox(xresult[2])
messagebox(xresult[3])
1