Z005.Z004.Z002.Z004根据"."号将字符串切割出来,并且去掉里面重复的(Z004有两个,只保留一个),结果为Z004,Z005和Z002三个字符串.....
解决方案 »
- 100分请教各位Pascal大大们
- 关于1000多个异地点数据库数据上传汇总问题请教,注意: 各异地点只使用sql server桌面驱动
- dbexpress的不能applyupdates?
- 在线等.......得到的TMemoryStream如何显示在OleContainer
- delphi有什么好用的表格控件呀
- 怎么读取多个已通过文件流添加到头文件的文件?(相当于解压那个过程)。
- 制作可停泊窗体?
- 动态菜单的高难问题!!!(谁能解决这个问题,我给2000分)
- 谁能解决EXE读取自己的困难?一个不大不小的难题
- delphi 统计 多条循环成一条,谢谢!!!
- 请教!鼠标拖动选择问题???
- 怎么捕获PowerPoint 退出的消息?
S:string;
SubStr,Str1,Str2,Str3,Str4:string;
begin
S:='Z005.Z004.Z002.Z004';
i:=pos('.',s);//寻找第一个.的位置
Str1:=copy(S,1,i);//第一个.的位置之前的str为Z005
SubStr:=Copy(S,i,length(S)-i);//剩下的str为Z004.Z002.Z004'
......//继续
最后把Str1,Str2,Str3,Str4进行比较,如果有相同的就去掉一个,然后几个不相同的再连接起来
end;
//大体是这样,还要自己改改,也可以在取出str2的时候跟str1比较,如果相同则把其中一个str放弃,然后再赋给substr
Var Str:string;
begin
Str:='Z005.Z004.Z002.Z004';
List.Clear; //List为一个Listbox控件
While pos('.',Str)>0 do
begin
if List.Items.IndexOf(copy(Str,1,pos('.',Str)-1))<0 then //表示不存在
List.Items.Add(copy(Str,1,pos('.',Str)-1));
Str:=copy(Str,pos('.',Str)+1,length(Str)-pos('.',Str));
end;
end;
var
s:string;
l,l1:tstringlist;
i,j:integer;
begin
s := 'Z005.Z004.Z002.Z004';
l := tstringlist.Create;
l1 := tstringlist.Create;;
l.Delimiter := '.';
l.DelimitedText := s; for i := 0 to l.Count - 1 do
begin
j := l.IndexOf(l.Strings[i]);
if j = i then l1.Append(l.Strings[j]);
end; showmessage(l.Text);
showmessage(l1.Text); ///////你所要的结果 l.Free;
l1.Free;
end;