Delphi World - Функция для удаления из строки лишних символов
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Функция для удаления из строки лишних символов

Автор: DiVo
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Функция для удаления из строки "лишних" символов.

Функция для удаления из строки "лишних" символов.
Входные параметры:
Input - входная строка, которую необходимо очистить от лишних символов
EArray - строка, содержащая набор разрешенных или запрещеных символов
в зависимости от Action
Action - указывает на то, что из себя представляет массив EArray.

Action может принимать следующие значения:
1 - массив EArray представляет собой строку разрешенных символов
2 - EArray - массив запрещенных символов.

Зависимости: делал в Д5, 6 под Win9x
Автор:       Ru, DiVo_Ru@rambler.ru, Одесса
Copyright:   DiVo 2002, creator Ru
Дата:        11 ноября 2002 г.
***************************************************** }

function strtst(var Input: string; EArray: string; Action: integer): string;
begin
  case Action of
    1:
      begin
        while length(Input) <> 0 do
        begin
          if pos(Input[1], EArray) = 0 then
            delete(Input, 1, 1)
          else
          begin
            result := result + Input[1];
            delete(Input, 1, 1);
          end;
        end;
      end;
    2:
      begin
        while length(Input) <> 0 do
        begin
          if pos(Input[1], EArray) <> 0 then
            delete(Input, 1, 1)
          else
          begin
            result := result + Input[1];
            delete(Input, 1, 1);
          end;
        end;
      end;
  else
    messagebox(0, 'Не корректный вызов функции.', '', mb_ok);
  end;
end;

Пример использования:

// 1.
s := edit1.text;
s := strtst(s, '0123456789.', 1);
edit1.text := s;

// например на входе: 0.16+
// на выходе будет: 0.16

// 2.
s := edit1.text;
s := strtst(s, '/*-+,', 2);
edit1.text := s;

// на входе: 0.16+
// на выходе будет: 0.16
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования