Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Удаление одинаковых подстрок в строке
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - FAQ
mozhunt
Народ, есть строка 11043 11029 11029 11036

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

Как ?
Vadik(R)
Код
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
или так:
Код
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: правдо парядок изменился ... ну если он не важен то.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2008 IPS, Inc.