Парсинг данных. Часть 1

4 минуты на чтение
В этой статье, я Вам хотел бы рассказать как можно, но ненужно, это конечно шутка, метод этот, что я предложу не сильно надежный и быстрый, но все же, как вариант, сначала попробуем этим методом обычные данные пропарсить, затем этим методом 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-страниц, а затем парсинг страниц, используя регулярные выражения.
Facebook Vk Ok Twitter LinkedIn Telegram

Похожие записи:

Продолжаем работу с базами данных. На этот раз, хотел бы рассмотреть фильтрацию данных в БД. Вообще, хотелось бы поговорить, для чего она предназначена, а также способы фильтрации данных, другими словами поиска данных в БД, с использованием технологии ADO. Как...
База данных в Delphi - это коллекция структурированных данных, которые могут быть организованы, хранены, обновлены и извлечены с помощью специальных программных средств. В Delphi вы можете использовать различные типы баз данных, включая локальные и удаленные б...
Delphi - это интегрированная среда разработки программного обеспечения (IDE) для создания Windows-приложений на языке Object Pascal. Delphi имеет встроенную поддержку для работы с базами данных через различные компоненты и библиотеки. В Delphi для работы с баз...