16,748
社区成员
发帖
与我相关
我的任务
分享
procedure TForm1.FormCreate(Sender: TObject);
var
L: TStringList;
I, J, C: Integer;
S: string;
begin
L := TStringList.Create;
L.Add('aa123');
L.Add('bb135');
L.Add('aa456');
L.Add('aa789');
L.Add('bb790');
I := 0;
C := 0;
while I < L.Count do
begin
S := Copy(L[I], 1, 2);
for J := 0 to C - 1 do
if S = Copy(L[J], 1, 2) then
begin
L[J] := L[J] + '|' + Copy(L[I], 3, MaxInt);
L.Delete(I);
I := -1;
Break
end;
if I = -1 then
I := C
else
begin
Inc(I);
Inc(C)
end;
end;
ShowMessage(L.Text);
L.Free
end;
procedure TForm1.btn1Click(Sender: TObject);
var
sl, slTmp, slRet: TStringList;
str, strTmp, subStr: string;
i: Integer;
begin
sl := TStringList.Create;
slTmp := TStringList.Create;
slRet := TStringList.Create;
sl.Add('aa123');
sl.Add('bb135');
sl.Add('aa456');
sl.Add('aa789');
sl.Add('bb790');
while (sl.Count > 0) do
begin
str := sl[sl.Count - 1];
slTmp.Add(str);
subStr := Copy(str, 1, 2);
sl.Delete(sl.Count - 1);
for i := sl.Count - 1 downto 0 do
begin
str := sl[i];
strTmp := Copy(str, 1, 2);
if (subStr = strTmp) then
begin
slTmp.Add(str);
sl.Delete(i);
end;
end;
str := slTmp[slTmp.count-1] ;
slTmp.Delete(slTmp.Count -1);
for i := slTmp.Count -1 downto 0 do
begin
str := str + '|'+ Copy(slTmp[i], 3,Length(slTmp[i]) -2) ;
slTmp.Delete(i);
end;
slTmp.Clear() ;
slRet.Add(str) ;
end;
for i := slRet.Count -1 downto 0 do
begin
ShowMessage(slRet[i]);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
list1,list2:TStringList;
i,j:Integer;
str:string;
find:Boolean;
begin
list1 := TStringList.Create;
list2 := TStringList.Create;
list1.Add('aa123');
list1.Add('bb135');
list1.Add('aa456');
list1.Add('aa789');
list1.Add('bb790');
for i := 0 to list1.Count - 1 do
begin
find :=False;
str := Copy(list1.Strings[i],1,2);
for j := 0 to list2.Count - 1 do
begin
if (Copy(list2.Strings[j],1,2) = str) then
begin
list2.Strings[j] := list2.Strings[j]+'|'+Copy(list1.Strings[i],3,Length(list1.Strings[i])-2);
find := True;
Break;
end;
end;
if not find then
list2.Add(list1.Strings[i]);
end;
ShowMessage(list2.Text);
end;