Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2014, 21:27   #1
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию Проблема с регулярными выражениями

Не могу понять что не так?

Код:
procedure TNewThread.Execute;
begin
HTTP:=THTTPSend.create;
rege:=TRegExpr.Create;
rege.Expression:='\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}';
for i:=0 to Form1.sMemo1.Lines.Count-1 do
begin
try
site:=Form1.sMemo1.Lines.Strings[i];
http.HTTPMethod('GET',site);
html.LoadFromStream(http.Document);
except
end;
if rege.Exec(html.Text) then
Synchronize(reg);
end;
HTTP.Free;
Rege.Free;
http.Document.Clear;
http.Headers.Clear;
end;

procedure TNewThread.reg;
begin
Form1.sMemo2.Lines.Add(rege.Match[0]);
end;
UKRtortik вне форума Ответить с цитированием
Старый 15.03.2014, 22:48   #2
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Сходу увидел такую ошибку

Код:
HTTP.Free;//уничтожили
Rege.Free;
http.Document.Clear;//пытаемся работать с уничтоженным объектом
http.Headers.Clear;
XE5 вне форума Ответить с цитированием
Старый 15.03.2014, 23:32   #3
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от XE5 Посмотреть сообщение
Сходу увидел такую ошибку

Код:
HTTP.Free;//уничтожили
Rege.Free;
http.Document.Clear;//пытаемся работать с уничтоженным объектом
http.Headers.Clear;
Ну это мелочь, а еще какие есть ошибки?
UKRtortik вне форума Ответить с цитированием
Старый 15.03.2014, 23:51   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от UKRtortik Посмотреть сообщение
Ну это мелочь, а еще какие есть ошибки?
А что там не так? Вернее что этот код должен делать?

На быстрый взгляд:
- Что это там в регулярке?
- Обращение к форме без синхронизации
- rege.Match[0] область видимости переменной ограничена в Execute
- Переменные html, site, i неизвестно где объявлены... они глобальные для всего или в классе описаны?
- А что будет, если выскочит ошибка и перекинется в except? html не изменит значение и в мемо2 что-то добавится (или ничего - п.3)

Ну и форматирование кода отсутствует.
eoln вне форума Ответить с цитированием
Старый 16.03.2014, 00:00   #5
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
А что там не так? Вернее что этот код должен делать?

На быстрый взгляд:
- Что это там в регулярке?
- Обращение к форме без синхронизации
- rege.Match[0] область видимости переменной ограничена в Execute
- Переменные html, site, i неизвестно где объявлены... они глобальные для всего или в классе описаны?
- А что будет, если выскочит ошибка и перекинется в except? html не изменит значение и в мемо2 что-то добавится (или ничего - п.3)

Ну и форматирование кода отсутствует.
Код:
TNewThread = class(TThread)
  private
   html:TStringList;
   html2:string;
   rege:tregexpr;
   http:thttpsend;
   prx3:tstringlist;
  procedure reg;
  protected
    procedure Execute; override;
  public
    constructor Create(CreateSuspended: Boolean);
  end;

var
  Form1: TForm1;
  i:integer;
  site:string;
UKRtortik вне форума Ответить с цитированием
Старый 16.03.2014, 00:06   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
- Что это там в регулярке?
IP с портом судя по всему

Цитата:
Ну это мелочь, а еще какие есть ошибки?
а что тогда не мелочь?
eval вне форума Ответить с цитированием
Старый 16.03.2014, 00:30   #7
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
IP с портом судя по всему
а что тогда не мелочь?
Вот я у вас и спросил что не так, так как сам не понимаю в чем тут ошибка...
UKRtortik вне форума Ответить с цитированием
Старый 16.03.2014, 01:09   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

eoln вам практически все рассказал
eval вне форума Ответить с цитированием
Старый 16.03.2014, 07:17   #9
Larboss
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию

А что за ошибку выдает? При компиляции ошибка или код не работает?
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
Larboss вне форума Ответить с цитированием
Старый 16.03.2014, 07:21   #10
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Цитата:
Вот я у вас и спросил что не так, так как сам не понимаю в чем тут ошибка...
Значит нет ошибки
bulldog5293 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java_работа с регулярными выражениями L-e-e Помощь студентам 3 17.02.2011 10:14
Проблема с регулярными выражениями heartborne123 PHP 2 15.09.2010 21:50
Работа с регулярными выражениями Igoressicus Помощь студентам 0 08.06.2010 22:15
Помощь с регулярными выражениями WebSQLNeeder PHP 8 09.07.2008 17:57
Задачка с регулярными выражениями Timmy PHP 1 25.06.2007 10:18