字段中字符的处理:(30分)

  • 主题发起人 主题发起人 kai
  • 开始时间 开始时间
K

kai

Unregistered / Unconfirmed
GUEST, unregistred user!
字段中字符的处理:
有一DBF表单,其中一字段的许多纪录在输入时
由于误操作,字符之间出现了许多空格,想把空
格去掉如何编程?
 
?????????这问题,似乎教科书上就有的呀!

检测字符段的长度,然后做一个循环,遇空格把之后字符字符串
向前移一位同时把后一位置空.
(这就是教科书上的蠢方法)

你可以另开一个temp字符串变量,

j=0;

for i:=0 to length(chr) do
begin
if chr<>' ' then
begin
temp[j]:=chr;
j:=j+1;
end;

end;

呵呵!以上程序信手写出,也不知能不能编译, 自己试一下吧

 
下列语句可返回去掉空格后的字符串:
while Pos(' ',s)<>0 do
s:=copy(s,0,Pos(' ',s)-1)+copy(s,Pos(' ',s)+1,length(s));
 

query1.Close;
query1.sql.add('select * from ":yourdb:yourtable"');
query1.open;
query1.first;
while not query1.eof do
begin
yourstr:=query1.fieldbyname('yourfieldname').asstring;
tempstr:='';
for i=i to length(yourstr) do
begin
if not (yourstr=' ') then tempstr:=tempstr+yourstr;
end;
query2.Close;
query2.sql.add('update ":yourdb:yourtable" set yourfieldname=:newvalue where yourtableindexfieldname=:indexvalue');
query2.ParamByName('newvalue').asstring:=tempstr;
query2.ParamByName('oldvalue').asstring:=query1.filedbyname('yourtableindexfieldname').asstring;
query2.ExecSQL;
end;
 
呵呵!和第一种方法原理一样呀!
 
OK,抱歉,
query2.ParamByName('oldvalue').asstring:=query1.filedbyname('yourtableindexfieldname').asstring;
语句oldvalue处应为indexvalue!
 
删除串中的空格:

while Pos(' ', s) > 0 do
Delete(s, Pos(' ', s), 1);

比拷贝强!
 
用barton的办法吧,忘了delete了。
 
多人接受答案了。
 
后退
顶部