请大家帮忙,一个特简单的问题,转换表格字符串(50分)

  • 主题发起人 主题发起人 尘土飞扬
  • 开始时间 开始时间

尘土飞扬

Unregistered / Unconfirmed
GUEST, unregistred user!
表格的字符串为:
基本信息|姓名,100,cxm:基本信息|性别,80,cxb:基本信息|年龄,80,nll:地址,200,caddr:工作单位,210,czzdw
转化为:
基本信息(姓名,100,cxm;性别,80,cxb;年龄,80,nll):地址,200,caddr:工作单位,210,czzdw

我刚学,请各位休闲之余给我示范示范,不胜感激。(要源代码)
 
用split函数分割

///分割一个字符串,其中分割的标志是ch
function SplitString(const source,ch:string):tstrings;

function SplitString(const source,ch:string):tstrings;
var
temp:string;
i:integer;
begin
result:=tstringlist.Create;
temp:=source;
i:=pos(ch,source);
while i<>0 do
begin
result.Add(copy(temp,0,i-1));
delete(temp,1,i);
i:=pos(ch,temp);
end;
result.Add(temp);
end;
 
你的问题用三个替换能解决,当然根据具体情况你可以自己
找一些规律。我的替换仅是根据你的这个特例进行的。
注意一下标点符号的全角和半角。具体代码如下:

procedure TForm1.Button2Click(Sender: TObject);
var
s,s1:string;
begin
s:='基本信息|姓名,100,cxm:基本信息|性别,80,cxb:基本信息|年龄,80,nll:地址,200,caddr:工作单位,210,czzdw';
s1:=stringreplace(s,':基本信息|',';',[rfReplaceAll]);
//将所有的 ':基本信息|' 替换成 ';'
s1:=stringreplace(s1,':地址','):地址',[rfReplaceAll]);
//将所有(一个)的 ':地址' 替换成 '):地址'
s1:=stringreplace(s1,'基本信息|','基本信息(',[]);
//将第一个 '基本信息|' 替换成 '基本信息('
showmessage(s1);
end;
 
感谢两位的指导,感谢大富翁为delphi的爱好者创作了天堂般的环境,我以后会常来
参与,并提出问题。待到我能回答问题时,我会去帮助需要帮助的人。
 
后退
顶部