请问如何消除字符串中的空格?
我通过import在数据库中加入了一些数据,有些字符串型字段中有空格,我想把空格消掉,请问改用什么办法?还有,从单行编辑框中接收字符串数据的时候,怎么样才能把其中的字符串消掉?我不是指的首尾的空格,是中间的空格.希望各位大虾不吝赐教.谢谢 问题点数:40、回复次数:10Top
1 楼Hanson_bati_zhu(欺世盗名之徒)回复于 2002-05-22 14:50:00 得分 10
如果想把一个字符串变量中所有空格清楚
可以找一个n_cst_string对象(网上找PFC对象里有)
这个对象中有函数
of_GlobalReplace
可以替换所有需要替换的内容
可以使用格式
ls_NeedReplace = lnv_String.of_GlobalReplace(ls_NeedReplace,' ','')
试试看
Top
2 楼myclife(反方向的钟)回复于 2002-05-22 14:53:38 得分 10
/*=========================================================
Function: get_token
Commect:
Argument: p_string reference
p_seperator
Return: string
Log:
=========================================================*/
int vPos
string vsRet=""
vPos=pos(P_string,p_seperator)
if vPos >= 1 then
vsRet=left(p_string,vpos - 1)
P_string=right(p_string,Len(p_string) - vPos - Len(p_seperator)+1) //去掉分隔符
ELSE
vsRet=p_string
p_string=""
end if
return vsRet
在程序中用上面的函数
string lsInput,lsData
lsInput = Trim(sle_Input.Text)
Do While lsInput <> ''
lsData += get_token(lsInput," ")
lsInput = Trim(lsInput)
Loop
//得出结果lsData
Top
3 楼fibbery(飞)(睡足了才能提高效率)回复于 2002-05-22 14:53:46 得分 0
do where (true)
ll_pos=pos(string1," ")<>0
if ll_pos<>0 then
replace(string1,ll_pos,1,"")
else
exit
end if
loopTop
4 楼fibbery(飞)(睡足了才能提高效率)回复于 2002-05-22 14:55:53 得分 0
不是ll_pos=pos(string1," ")<>0
而是ll_pos=pos(string1," ")Top
5 楼myclife(反方向的钟)回复于 2002-05-22 14:56:17 得分 0
如果用楼上的方法很好,我有一个函数:
/* f_ReplaceAll() 以 psStr2 代替 psString 中所有的 psStr1
Parameter: psString 原串
psStr1 被代替的串
psStr2 代替串
Return: psString 代替后的串
Call: vsSql=f_ReplaceAll(vsSql, "'J'", "'D'")
---------------------------------------------------------*/
int viPos
viPos=1
DO WHILE viPos>0
viPos= Pos(psString, psStr1, viPos)
IF viPos<=0 THEN EXIT
psString= Replace(psString, viPos, Len(psStr1), psStr2)
viPos= viPos + Len(psStr2)
LOOP
return psStringTop
6 楼xiongxiao(小雄)回复于 2002-05-22 14:56:49 得分 0
同意楼上,又简单又好使。Top
7 楼fibbery(飞)(睡足了才能提高效率)回复于 2002-05-22 15:04:27 得分 0
傻了,空串不能replace吗?Top
8 楼jackygan(一剑飘香)回复于 2002-05-22 15:08:30 得分 10
写一个函数啊。
设函数名为gf_getrealname,参数字字符串ls_ref,返回字符串ls_string
则:
int i
string ls_string,ls_temp,ls_lone
ls_string=""
ls_temp=trim(ls_ref)
for i=1 to len(ls_temp)
ls_lone=mid(ls_temp,i,1)
if not asc(ls_lone)=32 then
ls_string=ls_string+ls_lone
end if
next
return ls_string ;Top
9 楼fibbery(飞)(睡足了才能提高效率)回复于 2002-05-22 15:11:13 得分 10
string ls_test="asd d p"
long ll_pos
long ll_len
ll_len=len(ls_test)
do while (true)
ll_pos=pos(ls_test," ")
if ll_pos<>0 then
ls_test=mid(ls_test,1,ll_pos -1)+mid(ls_test,ll_pos +1,ll_len - ll_pos)
else
exit
end if
loop
messagebox("",ls_test)Top
10 楼qqf(我就是我)回复于 2002-05-22 16:05:59 得分 0
一个一个的取出字符串的子串,判断是否是字符串,是则消处。Top




