В этой статье, я Вам хотел бы рассказать как можно, но ненужно, это конечно шутка, метод этот, что я предложу не сильно надежный и быстрый, но все же, как вариант, сначала попробуем этим методом обычные данные пропарсить, затем этим методом html-страницу пропарсить, ну а напоследок, я Вам покажу как парсить страницы с помощью регулярных выражений и тогда вы найдете разницу и даже ее почувствуете. Ну а теперь вернемся к нашим «баранам», а точнее к нашему методу парсинга данных. Метод этот заключается удалении ненужных данных и все. В данном методе мы затроним такие методы как:
- delete
- pos
Можно и без них обойтись, а воспользоваться функцией copy, но посмотрим так и так.
теперь заполним переменную данными (текстом), который мы затем будем парсить.
var
StrPars:WideString;
begin
StrPars:='Этот текст мы будем парсить, а вот этот нам надо получить, пропарсили и забыли';
end;
Так переменная у нас текстом нужным заполнена теперь приступаем к парсингу. Нам надо определиться до чего будем парсить и после чего. Соответственно до «запятой» и до «запятой» нам надо получитьс данные. Вот это примерно так будет выглядеть в Delphi
procedure TForm1.Button1Click(Sender: TObject);
var
StrPars:WideString;
begin
StrPars:='Этот текст мы будем парсить, а вот этот нам надо получить, пропарсили и забыли';
Delete(StrPars,1,pos(',',StrPars)+1);
Delete(StrPars,pos(',',StrPars),length(StrPars));
ShowMessage('ParsText='+StrPars);
end;
Вот что я и говорил, удаляем до запятой данные, и удаляем после запятой данные. Вот и у нас получиться текс нужный, как это можно реализовать с помощью copy, смотрим чуть-чуть ниже
procedure TForm1.Button2Click(Sender: TObject);
var
StrPars,St:WideString;
begin
StrPars:='Этот текст мы будем парсить, а вот этот нам надо получить, пропарсили и забыли';
Delete(StrPars,1,pos(',',StrPars)+1);
st:=copy(StrPars,1,pos(',',StrPars)-1);
ShowMessage('ParsText='+St);
end;
Но здесь мы все равно используем delete. Это можно красиво организовать как функцию, вынести в отдельный модуль и использовать в своих проектах, вот организована наша функция будет примерно так
function Pars(st,st_begin,st_end:WideString):WideString;
begin
if pos(st_begin,st)<>0 then
Delete(st,1,pos(st_begin,st)+length(st_begin))
else
begin
Pars:='not str pars';
exit;
end;
if pos(st_end,st)<>0 then
Delete(st,pos(st_end,st),length(st))
else
begin
Pars:='not str pars';
exit;
end;
Pars:=st;
end;
Использовать данную функцию можно так
Caption:=Pars('вот эту строку мы парсим, а это нет','вот эту строку ',', а это нет');
В следующей статье по парсингу мы рассмотрим парсинг html-страниц, а затем парсинг страниц, используя регулярные выражения.