PDA

Просмотр полной версии : Delphi - Simple Parser


Adio
23.03.2010, 22:34
Вообщем нужен пример простейшого парсера.

К примеру есть кода в <div>Hello Message</div>

Нужно вырезать только текст. и поместить его в переменнюю а дальше уже делать что хочу.

Вообще интересно сделать парсер с базой - точно такой же как делают на пхп.

cheater_man
23.03.2010, 22:41
Вообщем нужен пример простейшого парсера.

К примеру есть кода в <div>Hello Message</div>

Нужно вырезать только текст. и поместить его в переменнюю а дальше уже делать что хочу.

Вообще интересно сделать парсер с базой - точно такой же как делают на пхп.
Давай я тебе напишу парсер с БД на с++ или с#.
Давай асю.

Adio
23.03.2010, 22:51
давай свою я тебе напишу

Adio
23.03.2010, 23:04
Вообще интересно бы посмотреть или понять как это делать .. может кто нибуть может по пунктам расписать ? что нужно делать ? на делфи ? . Поставлю плюсы

Задача парсить что нибуть простое и заносить в базу

W!z@rD
23.03.2010, 23:37
>>Поставлю плюсы
завязывай смешить, много плюсиков наставишь?
что за тупость? Поражает, люди пишут за плюсы и т.п. если раньше это было мотивацией, то после смены алгоритма сила вашего плюсования = 0.

по теме. Регулярки юзай.
и рано тебе еще с БД работать раз не знаешь как текст распарсить.

~Shapaev~
24.03.2010, 00:19
Вообщем нужен пример простейшого парсера.

К примеру есть кода в <div>Hello Message</div>

Нужно вырезать только текст. и поместить его в переменнюю а дальше уже делать что хочу.


как бы вот на твою строку , если просто можно и без регулярок обходиться.

var s:string;
begin
s:='<div>Hello Message</div>';
s:=copy(s,pos('<div>',s)+length('<div>'),pos('</div>',s)-length('</div>'));
write(s);

end.

Adio
24.03.2010, 02:21
как бы вот на твою строку , если просто можно и без регулярок обходиться.

var s:string;
begin
s:='<div>Hello Message</div>';
s:=copy(s,pos('<div>',s)+length('<div>'),pos('</div>',s)-length('</div>'));
write(s);

end.







А как из переменной S занести в базу ? MYSQL ?

Есть какой нибуть мануал для чайников по работе с базой ? начиная от вставки и т д ?

Gar|k
24.03.2010, 03:27
Adio нафига тебе в делфе MySQL? (набери в поиске - delphi mysql я быстро нашел статейку) скачай DirectMysqlObjects... код примера что-то типа

uses uMySqlVio, uMysqlCT, uMysqlClient, uMysqlHelpers;

var
MySQLClient: TMySQLClient;
MySQLResult: TMysqlResult;

begin
MySQLClient := TMySQLClient.Create;
if not MySQLClient.connect('localhost', 'root', '', 'kosteg', 3306, '', false, 0) then ShowMessage('connected error!');

MySQLResult:=MySQLClient.query('select f from pokup limit 1',true,res);
ShowMessage(MySQLResult.FieldValueByName('f'));

MySQLClient.Free;
if MySQLResult <> nil then MySQLResult.Free;
end.

это притом что я delphi не перевариваю гргргр...

насчет парса - используй регулярные выражения они для того и придуманы. А вообще для каждой задачи свое средство если тебе нужно много-много текста анализировать и делать отчеты (хоть в бд) под unix лично я бы использовал perl (есть стаааарая разработка - проходится по сайту xakep.ru и собирает все текстовые версии жуналов красиво в бд... ну и интерфейс на php типа архива с поиском. где-то у меня лежит дамп этой базы с 99 года журалы хех )

Adio
24.03.2010, 14:01
>>Поставлю плюсы
завязывай смешить, много плюсиков наставишь?
что за тупость? Поражает, люди пишут за плюсы и т.п. если раньше это было мотивацией, то после смены алгоритма сила вашего плюсования = 0.

по теме. Регулярки юзай.
и рано тебе еще с БД работать раз не знаешь как текст распарсить.


Без плюсов не кто нипишет лень :) я могу хоть всем подряд из ставить мне как то фиалетово :) на те плюсы минусы :)

Adio
24.03.2010, 14:05
Adio нафига тебе в делфе MySQL? (набери в поиске - delphi mysql я быстро нашел статейку) скачай DirectMysqlObjects... код примера что-то типа

uses uMySqlVio, uMysqlCT, uMysqlClient, uMysqlHelpers;

var
MySQLClient: TMySQLClient;
MySQLResult: TMysqlResult;

begin
MySQLClient := TMySQLClient.Create;
if not MySQLClient.connect('localhost', 'root', '', 'kosteg', 3306, '', false, 0) then ShowMessage('connected error!');

MySQLResult:=MySQLClient.query('select f from pokup limit 1',true,res);
ShowMessage(MySQLResult.FieldValueByName('f'));

MySQLClient.Free;
if MySQLResult <> nil then MySQLResult.Free;
end.

это притом что я delphi не перевариваю гргргр...

насчет парса - используй регулярные выражения они для того и придуманы. А вообще для каждой задачи свое средство если тебе нужно много-много текста анализировать и делать отчеты (хоть в бд) под unix лично я бы использовал perl (есть стаааарая разработка - проходится по сайту xakep.ru и собирает все текстовые версии жуналов красиво в бд... ну и интерфейс на php типа архива с поиском. где-то у меня лежит дамп этой базы с 99 года журалы хех )

Да вообщем мне написали на PHP парсер который парсит выдирая текст и всталяя его в бд.

Просто хотел попробывать написать его на Delphi.. я в програмирование не спец но по мануалам разобраться написать подправить могу.

Вот и ищю что то подобное.. знаю что на PHP легче и быстрей но все таки хочеться что бы выглядело как софт.. :) так чисто для себя .. заодно и научюсь чемуто.

Вопрос.

Как в делфи найти что парсить :? к примеру страница кода то большая ?

или мне нужно просто находить определенные теги по ним орентироваться и парсить что между ними ?

Adio
24.03.2010, 18:02
есть кто живой ?)

Gar|k
24.03.2010, 20:36
ищи примеры работы с регулярными выражениями... и не задавай глупых вопросов.

Adio
25.03.2010, 01:06
ищи примеры работы с регулярными выражениями... и не задавай глупых вопросов.
Окей буду стараться.
Если что буду спрашивать если что то не будет получаться. Спасибо