Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.08.2010, 14:16
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию Парсинг по массиву

к примеру есть массив
Код:
const
NT = 5;
var
team: array[1..NT] of string[10] =
('1 ссылка','2 ссылка','3 ссылка','4 ссылка','5 ссылка')
и простой парсинг ссылки
Код:
while Pos('...',str)>0 do begin
 Form2.ListView1.Items[0].SubItems.Append(Copy(str,Pos('...',str)+12,7));
Delete(str,1, Pos('...',str)+12);
Если заведомо не известно какая ссылка на сайте, но есть шаблон етих ссылок, как организовать парсинг по массиву этих ссылок на их наличие?
Ответить с цитированием
  #2  
Старый 28.08.2010, 15:46
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Видимо примерно так:
Код:
 for i := 1 to NT
 do for j := 0 to Form2.ListView1.Items[0].SubItems.Count
     do if Form2.ListView1.Items[0].SubItems.Strings[j] = team[i]
         then // Нашли ссылку по шаблону
или наоборот, как вам нравится:
Код:
 for j := 0 to Form2.ListView1.Items[0].SubItems.Count
 do for i := 1 to NT
     do if Form2.ListView1.Items[0].SubItems.Strings[j] = team[i]
         then // Нашли ссылку по шаблону
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 28.08.2010 в 15:49.
Ответить с цитированием
  #3  
Старый 28.08.2010, 19:22
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

естли известен шаблон то можно использовать так называемые регулярные выражения. В нети статьи есть.
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
  #4  
Старый 29.08.2010, 01:01
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

в нете я искал, но там как то не то что мне нада, тем более без шаблонов, мог бы хотя бы простой пример показать как по шаблону делать
Ответить с цитированием
  #5  
Старый 29.08.2010, 09:03
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

Цитата:
Сообщение от bulldog
в нете я искал, но там как то не то что мне нада, тем более без шаблонов, мог бы хотя бы простой пример показать как по шаблону делать
Плохо ты искал) вот тут и описание и примеры http://forum.vingrad.ru/articles/topic-213075.html
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
  #6  
Старый 30.08.2010, 09:00
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

Вот пример поиска всех ссылок на странице:
PHP код:
procedure TForm1.Button1Click(SenderTObject);
var
rege:tregexpr;
s:string;
begin
s
:=idhttp1.Get(edit1.Text);
rege:=tregexpr.Create;
rege.Expression:='(http|ftp)://([\w.]+)/([\w\?\+=\-\.\\]+)';
if 
rege.Exec(sthen
 begin
 memo1
.Lines.Clear;
 
memo1.Lines.Add('На данной странице найдены следущие ссылки:');
 
repeat
 memo1
.Lines.Add(rege.Match[0]);
 
until not rege.ExecNext;
 
end
 
else
 
memo1.Lines.Add('На данной странице ссылок не обнаружено...');

rege.Free;
end

чтобы всё это заработало надо подключить модуль "regExpr" . Файл модулюя прилогается.
Вложения
Тип файла: rar RegExpr.rar (30.9 Кбайт, 25 просмотров)
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
  #7  
Старый 10.09.2010, 09:50
FreeSeeTman FreeSeeTman вне форума
Прохожий
 
Регистрация: 10.09.2010
Сообщения: 11
Репутация: 10
По умолчанию хэлп

У меня тут ошибка:
Код:
s:=idhttp1.Get(edit1.Text); 
Ответить с цитированием
  #8  
Старый 10.09.2010, 10:17
FreeSeeTman FreeSeeTman вне форума
Прохожий
 
Регистрация: 10.09.2010
Сообщения: 11
Репутация: 10
По умолчанию

Аа у меня компонента нет "idhttp" скиньте плиз!1
Ответить с цитированием
  #9  
Старый 10.09.2010, 11:52
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

вкладка indy client!
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #10  
Старый 10.09.2010, 15:23
Invisible Invisible вне форума
Заблокирован
 
Регистрация: 10.09.2010
Сообщения: 3
Репутация: 10
По умолчанию

на некоторых дельфи (версии которые весят около 100мб) реально нету компонента IDHTTP ...
ваще компоненты INDY нету кроме WebBrowser!)))
Ответить с цитированием
  #11  
Старый 10.09.2010, 15:28
FreeSeeTman FreeSeeTman вне форума
Прохожий
 
Регистрация: 10.09.2010
Сообщения: 11
Репутация: 10
По умолчанию

ну так что? =(
Ответить с цитированием
  #12  
Старый 10.09.2010, 15:59
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

скачай Indy компоненты, в нете есть!
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #13  
Старый 10.09.2010, 16:01
Invisible Invisible вне форума
Заблокирован
 
Регистрация: 10.09.2010
Сообщения: 3
Репутация: 10
По умолчанию

http://indyproject.org/
их сайт))
Ответить с цитированием
  #14  
Старый 13.09.2010, 07:38
FreeSeeTman FreeSeeTman вне форума
Прохожий
 
Регистрация: 10.09.2010
Сообщения: 11
Репутация: 10
По умолчанию

ОК...нафиг полную версию делфи установил теперь другая трабла...
Когда в едите пишешь ссылку которая попадает под описание а потом клик по батону:

// Debugger Exception Notification \\
"Project Project1.exe raised exception class EConvertError with message 'Invalid argument to data encode'. Process stopped. Use Step or Run to contine."

А если не попадает написаное под описание то:

// Debugger Exception Notification \\
"Project Project1.exe raised exception class EIdSocketError with message 'Socet Error # 10051 Network is unreachable.'. Process stopped.Use Step or Run to contine."

Такая тема...


з.ы. останавливается на этом: rege:=tregexpr.Create;

Последний раз редактировалось FreeSeeTman, 13.09.2010 в 07:45.
Ответить с цитированием
  #15  
Старый 16.09.2010, 08:00
FreeSeeTman FreeSeeTman вне форума
Прохожий
 
Регистрация: 10.09.2010
Сообщения: 11
Репутация: 10
По умолчанию

Короче ребятки всё путём) Спасибо) Я хз но получилось)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:40.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025