Z005.Z004.Z002.Z004根据"."号将字符串切割出来,并且去掉里面重复的(Z004有两个,只保留一个),结果为Z004,Z005和Z002三个字符串.....

解决方案 »

  1.   

    var i:integer;
        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
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    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;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    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;
      

  4.   

    andyzhou1101(〆.赱 極端(恋上Lcy===>幸福ing)) 的好象最实用呀