Очень полезная функция для копирования части текста.
Код:
function TForm1.Pars(T_, ForS, _T: string): string;
var a, b:integer;
begin
Result := '';
if (T_='') or (ForS='') or (_T='') then Exit;
a:=Pos(T_, ForS);
if a=0 then Exit else a:=a+Length(T_);
ForS:=Copy(ForS, a, Length(ForS)-a+1);
b:=Pos(_T, ForS);
if b>0 then
Result:=Copy(ForS, 1, b - 1);
end;
Пользоватся так:
label1.Caption:=pars('начало', переменная, 'конец');
И не забываем после public писать это:
function Pars(T_, ForS, _T:string):string;
Код:
function TForm1.Pars(T_, ForS, _T: string): string;
var a, b:integer;
begin
Result := '';
if (T_='') or (ForS='') or (_T='') then Exit;
a:=Pos(T_, ForS);
if a=0 then Exit else a:=a+Length(T_);
ForS:=Copy(ForS, a, Length(ForS)-a+1);
b:=Pos(_T, ForS);
if b>0 then
Result:=Copy(ForS, 1, b - 1);
end;
Пользоватся так:
label1.Caption:=pars('начало', переменная, 'конец');
И не забываем после public писать это:
function Pars(T_, ForS, _T:string):string;
а как сделать что б парсило не одну строку,а много?
ОтветитьУдалитьИспользуйте цикл.
УдалитьVanS, покажи пример спарсить Chr(86)&Chr(97)&Chr(110)&Chr(83) из Memo1 в Memo2 таким видом 86.97.110.83.
ОтветитьУдалитьУлучшенная функция парсинга
ОтветитьУдалить// Uses StrUtils;
// Pars Ultimate by Alex_pac
function Pars(const T_, _T, Text : 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;
b:=posEx(_T,Text,a);
if b>0 then
Result:=Copy(Text, a+Length(T_), b-a-Length(T_));
end;
Какие же вы все таки школьники! Нифедов одобряет. Скомуниздили мою функцию, и написали, что сами. Поменяли только имена переменных некоторых и их места.
ОтветитьУдалитьЕсли поменяли - то это уже не Ваша. Ваша та которую не меняли. Так что не надо тут про это.
УдалитьА вообще, я не писал что данная функция моя. Нашёл её ещё давно в каком то исходнике, вот и пользуюсь.
Если нашел вашу машину, телефон. И поменял в них что то, то машина и телефон уже не Ваши.
УдалитьМашина и телефон зарегистрированы на меня, и я смогу доказать что они мои. Тем более там куча уникальных деталей в отличие от куска текста.
Удалить