Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум программистов _ Delphi - FAQ _ Удаление одинаковых подстрок в строке

Автор: mozhunt 23:03:2008, 14:11

Народ, есть строка 11043 11029 11029 11036

надо из нее сделать строку 11043 11029 11036

Как ?

Автор: Vadik(R) 23:03:2008, 19:13

Код
program legko;
uses
  sysutils;
var
  a: array [1..100] of string;
  st : string;
  i,n : integer;
  fl : boolean;
begin
n:=0;
readln(st);
st:=st+' ';
while pos(' ',st)>0 do
begin
  fl:=true;
  for i:=1 to n do
  if copy(st,1, pos(' ',st)-1)=A[i] then
  begin
     fl:=false;
     break
  end;
  if fl then
  begin
    n:=n+1;
    a[n]:=copy(st,1,pos(' ',st)-1)
  end;
  delete(st,1,pos(' ',st))
end;
for i:=1 to n-1 do
st:=st+a[i]+' ';
st:=st+a[n];
writeln(st);
readln
end.

Писал на ходу, так что могут быть ошибки, но надеюсь их не будет.

Автор: sax_ol 24:03:2008, 15:01

или так:

Код
var
  list:TStringList;
begin
  list:=TStringList.Create;
  try
    list.Sorted := True;
    list.Duplicates := dupIgnore;
    list.Delimiter := ' ';
    list.DelimitedText := '11043 11029 11029 11036';

    ShowMessage(list.Text);
  finally
    list.Free;
  end;
end;


PS: правдо парядок изменился ... ну если он не важен то.

Русская версия Invision Power Board (http://www.nulled.ws)
© Invision Power Services (http://www.nulled.ws)