Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > замена строк


Автор: 0x00000000 5.11.2008, 19:39
дана строка вида gfdgdfh....dfhdfh..fdhdf.dfhdfh
в ней нужно заменить любую групу точек на три точки вот так gfdgdfh...dfhdfh...fdhdf...dfhdfh
помогите плиз

Автор: VanHelsing 5.11.2008, 20:20
Думаю вам поможет следующая связка:
Функция POS, возвращаяющая позицию первого вхождения подстроки в строку.
Код

Pos(исходная_строка,подстрока_поиска);

А далее процедуры Delete и Insert.

Автор: volvo877 5.11.2008, 20:27
Как-то вот так:
Код
const
  s: string = 'gfdgdfh....dfhdfh..fdh.df.dfhdfh';
var
  i, j: integer;

begin
  i := 1;
  while i <= length(s) do begin

    if s[i] = '.' then begin
      j := 0;
      while (i + j <= length(s)) and (s[i + j] = '.') do inc(j);

      if j > 3 then delete(s, i, j - 3)
      else
        while j < 3 do begin
          insert('.', s, i); inc(j);
        end;

      inc(i, 2);
    end;
    inc(i);
  end;
  writeln(s);
end.

Автор: 0x00000000 5.11.2008, 22:06
volvo877, огромное спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)