怎样取得指定分割符的前面字符

lqe_ada 2003-10-18 02:27:30
如'01.01.02',以'.'为指定分割符,则可以得到以下结果:
01
01.01
01.01.02
...全文
48 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
noil0125 2003-10-18
  • 打赏
  • 举报
回复
对不起,没看清题目:var
s:string;
begin
s:='01.01.02.03';
memo1.Text:=stringreplace(s,'.',#13#10,[rfIgnoreCase,rfReplaceAll]);
while pos(#13#10,memo1.Text)<>0 do
begin
showmessage(memo1.Lines[0]);
memo1.Text:=stringreplace(memo1.Text,#13#10,'.',[rfIgnoreCase]);
end;
showmessage(memo1.Lines[0]);
noil0125 2003-10-18
  • 打赏
  • 举报
回复
var
s:string;
begin
s:='01.01.02';
memo1.Text:=stringreplace(s,'.',#13#10,[rfIgnoreCase,rfReplaceAll]);
edit1.Text:=memo1.Lines[0];
edit2.Text:=memo1.Lines[1];
edit3.text:=memo1.Lines[2];
end;
grail_ 2003-10-18
  • 打赏
  • 举报
回复
var
str:string;
int,i:INTEGER;
str_bak:string;
begin
str:='10.20.30';
for i:=0 to 1 do
begin
int:=pos('.',str);
str_bak:=leftstr(str,int-1);
showmessage(str_bak);
delete(str,1,int);
end;
showmessage(str);
end;

end.
lqe_ada 2003-10-18
  • 打赏
  • 举报
回复
????
tiexinliu 2003-10-18
  • 打赏
  • 举报
回复
上边少写一个do
2.如果每一节的长度不是固定的
var
sstr:string;//源串
dstr:string;//目标串
I:INTEGER;
BEGIN
where sstr<>'' Do
begin

dstr:=copy(1,sstr,2);
sstr:=copy(3,sstr,(length(ssstr)-3));
showmessage('这是一个'+dstr);

end;
END;
tiexinliu 2003-10-18
  • 打赏
  • 举报
回复
1.如果没节的长度是固定的
var
sstr:string;//源串
dstr:string;//目标串
tstr:string;//临时串
I:INTEGER;
BEGIN
FOR I:=1 TO LEN(Sstr)/3
begin
tstr:=copy(i,sstr,3);
dstr:=copy(1,tstr,2);
showmessage('这是一个'+dstr)

end;
END;
free007 2003-10-18
  • 打赏
  • 举报
回复
先分割到stringlist内,然后再组织。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧