Привет, Гость! Регистрация RSS
Четверг, 21.11.2024
Главная » Статьи » Основные статьи сайта

Функция Pars();
Не знаю почему, но раньше у меня не было ситуации, где нужно было копировать части текста. И по скольку я с этим теперь столкнулся,  то подумал оповестить вас , что существует такая функция PARS. Она позволяет извлекать необходимые вам фрагменты из любого текста, т.е. является своего рода парсером.

Вот как выглядит функция pars:
 function TForm1.Pars(T_, Text, _T: string): string; 
 var a, b:integer;
 begin
Result := '';
if (T_='') or (Text='') or (_T='') then Exit;
a:=Pos(T_, Text);
if a=0 then Exit else a:=a+Length(T_);
Text:=Copy(Text, a, Length(Text)-a+1);
b:=Pos(_T, Text);
if b>0 then Result:=Copy(Text, 1, b - 1);
 end;

Вызвать данную функцию можно следующим образом:
 label1.Caption:=pars('начало', переменная, 'конец'); 
Здесь для примера использован label1. Но вы можете заменить его на любой другой компонент, предназначенный для вывода текстовой информации. Вместо 'начало' и 'конец' вы пишите комбинации символов, между которыми находится ваш фрагмент, которого хотите извлечь. 

И не забываем объявить о нашей функции. Для этого следует написать в окне кода программы после public ниже приведенный код:
 function Pars(T_, Text, _T:string):string


Нравится
Категория: Основные статьи сайта | Добавил: Dark_Green (29.12.2012)
Просмотров: 8812 | Комментарии: 1 | Теги: pars(), функция pars, pars | Рейтинг: 5.0/1

Другие статьи
»
Процедуры и функции в Delphi (0)
»
Создание и использование заставки в приложении (0)
»
Компонент Shape (0)
»
Работа с компонентом TMemo и диалогами открытия (TOpenDialog) и сохранения файлов (TSaveDialog) (0)
Всего комментариев: 1
1 G8  
0
Ужасный код. Операция Text:=Copy(Text, a, Length(Text)-a+1) перераспределяет память. На длинных строках, да еще при часто встречающихся префиксах T_ процедура будет дико тормозить.

Подсказка: PosEx.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]