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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2010, 18:34   #21
Ученик.6Б
Пользователь
 
Регистрация: 10.06.2010
Сообщений: 18
По умолчанию

С исходником который дал, почему так?, его можно было проверить на своем сервере, запрос другой сделать, как я выше описал. Если там не решено, что выкладывать?, в других меню программы все работает и не будет к этому та работа относиться.
Зачем выкладывать то?, если это никак решить не можем. Исходник же дал. В чем там проблема? ничего не отображает, а должно как по вашему понимаю.

Лучше наверно сделать чтоб текстом в окне каждый выполненый цикл писало!?
Где-то так:
Выполнено 1
Выполнено 2
Выполнено 3

и т.д.

Пошагово не прогонял, да и запутался уже. Три часа точно прошло, сделать так или так...
Сделайте что в том исходнике который дал чтоб работало, что не надо удалите, что надо добавьте. Наверно можно чтоб в нем работало? Выложите ... а там уже я сам.

Последний раз редактировалось Ученик.6Б; 10.06.2010 в 19:12.
Ученик.6Б вне форума Ответить с цитированием
Старый 10.06.2010, 19:45   #22
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Пошагово не проверял, да и запутался уже
Запутался, это же не причина бросать. Попробуй. Установи точку останова в начале процедуры (установи курсор на begin и нажми F5). Потом F9. Когда программа дойдет до этого места продолжай выполнять ее пошагово (нажимая F7). Ты сразу наглядно увидишь что делает, а чего не делает программа.
Цитата:
запрос чтоб без ошибки был на сервер свой (например на сниффер) запрос сделайте
Чтобы запрос на сервер был без ошибки сделайте свой запрос (например на сниффер) - Так читается куда приятнее. Имейте немного уважения. Я пытаюсь вам же чем могу помочь вам.

Еще раз. Проблема не в этом. Запрос может выполнятся, может нет. Добавление строк в Memo не может не происходить.
Код:
if <условие> then
  <действия если ДА>
else
  <действия если НЕТ>
Одно из этих действий должно выполняться в любом случае. Если это не так, то выполнение не доходит до этого условия. Ошибка в логиге построения программы, а устронить ее не зная того, что и как делает программа, и что вообще нужно, НЕ ВОЗМОЖНО.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var Data:TStringList;
begin
Data:=TStringList.Create;
Data.Add('a='+NEdit.Text);

Memo1.Lines.Clear;
for i := 1 to StrToInt (Edit1.Text) do begin

S:=IdHTTP1.Post('http://www.programmersforum.ru/newreply.php?do=postreply&t=103207', Data);

  if Pos('Atrue', S) = 0 then
    Memo1.Lines.Add ('Запрос - ' + IntToStr(i) + ' (' + TimeToStr(Now) + ')')
  else
    Break;
end;
if Pos('Atrue', S)=0 then Memo1.Lines.Add ('Ошибка')
else Memo1.Lines.Add ('Отправлено (' + TimeToStr(Now) + ')');
 end;
У меня вот это работает. Запросы отрабатывают. В Мемо строки добавляются.

И еще. Возникают ли у вас с вашим кодом системные ошибки (если да, то какие) и используете ли вы try.

Последний раз редактировалось Sibedir; 10.06.2010 в 19:47.
Sibedir вне форума Ответить с цитированием
Старый 10.06.2010, 20:15   #23
Ученик.6Б
Пользователь
 
Регистрация: 10.06.2010
Сообщений: 18
По умолчанию

Вижу что хотите помочь, но не понять в чем проблема.
try не использую. проверил пошагово, вот -

Цитата:
if Pos('Atrue', S) = 0 then - отсюда
Memo1.Lines.Add ('Запрос - ' + IntToStr(i) + ' (' + TimeToStr(Now) + ')')
else
Break;
end;
if Pos('Atrue', S)=0 then Memo1.Lines.Add ('Ошибка') - переходит сразу сюда
Указал в коде какие строки пошагово не выполнились. В Memo1 ничто не замечалось. Ошибок небыло тоже. В чем дело, не понять? Может исходник выложите рабочий на нем проверю. Может в версии Delphi7 причина или в Indy (нужна может 9 или 10 версия)?

Почему еще, один запрос только, ввожу например пять, выполняется один.

Последний раз редактировалось Ученик.6Б; 10.06.2010 в 20:31.
Ученик.6Б вне форума Ответить с цитированием
Старый 10.06.2010, 20:31   #24
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Старайтесь соблюдать правила переносов. Это облегчает удобочитаемость
Код:
for ...
  if Pos('Atrue', S) = 0 then  здесь условие не выполнелось и перешло по
                                      ветке else через Break на выход из цикла
    Memo1.Lines.Add ('Запрос - ' + IntToStr(i) + ' (' + TimeToStr(Now) + ')')
  else
    Break;
end;

if Pos('Atrue', S)=0 then  условие опять не выполнелось, идем на else
  Memo1.Lines.Add ('Ошибка')
else
  Memo1.Lines.Add ('Отправлено (' + TimeToStr(Now) + ')'); вот это теперь должно отработать
Если хотите, чтобы выполнелось N-ое кол-во запросов
Код:
  for i := 1 to StrToInt (Edit1.Text) do begin
    S:=IdHTTP2.Post('http://www.programmersforum.ru/newreply.php?do=postreply&t=103207', Data);
    if Pos('Atrue', S) = 0 then
      Memo1.Lines.Add ('Не выполнено - ' + IntToStr(i) + ' (' + TimeToStr(Now) + ')')
    else
      Memo1.Lines.Add ('Выполнено - ' + IntToStr(i) + ' (' + TimeToStr(Now) + ')');
  end;

Последний раз редактировалось Sibedir; 10.06.2010 в 20:34.
Sibedir вне форума Ответить с цитированием
Старый 10.06.2010, 21:04   #25
Ученик.6Б
Пользователь
 
Регистрация: 10.06.2010
Сообщений: 18
По умолчанию

Цитата:
for i := 1 to StrToInt (Edit1.Text) do begin
S:=IdHTTP2.Post('http://www.programmersforum.ru/newreply.php?do=postreply&t=103207' , Data);
if Pos('Atrue', S) = 0 then
Memo1.Lines.Add ('Не выполнено - ' + IntToStr(i) + ' (' + TimeToStr(Now) + ')')
else
Memo1.Lines.Add ('Выполнено - ' + IntToStr(i) + ' (' + TimeToStr(Now) + ')');
end;
Ошибка на end.
Добавил еще end; - все выводит, то что надо.

Спасибо!

Последний раз редактировалось Ученик.6Б; 10.06.2010 в 21:13.
Ученик.6Б вне форума Ответить с цитированием
Старый 11.06.2010, 16:11   #26
Ученик.6Б
Пользователь
 
Регистрация: 10.06.2010
Сообщений: 18
По умолчанию

Такая проблемка стала: Запускаю прогу, указываю в цикле например 50, нажимаю на выполнение, работает, но если нажать например на ярлык на столе или на другое, вешается, становиться белого цвета и курсор если навести - песочные часы, хотя работает сама прога, выполняет цикл.

Как можно исправить эту проблему?
Ученик.6Б вне форума Ответить с цитированием
Старый 11.06.2010, 16:22   #27
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Код:
  S:=IdHTTP2.Post(<************>, Data);
  Application.ProcessMessages;
Цитата:
указываю в цикле например 50
Вы что пытаетесь атаку на сервер Microsoft устроить?
Sibedir вне форума Ответить с цитированием
Старый 11.06.2010, 16:29   #28
Ученик.6Б
Пользователь
 
Регистрация: 10.06.2010
Сообщений: 18
Сообщение

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Код:
  S:=IdHTTP2.Post(<************>, Data);
  Application.ProcessMessages;
Вы что пытаетесь атаку на сервер Microsoft устроить?
Нет не атаку, другое . Почему прога подвешивает, как решить эту проблему ?
Ученик.6Б вне форума Ответить с цитированием
Старый 11.06.2010, 16:41   #29
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Почему прога подвешивает
Программа работает
S:=IdHTTP2.Post(<************>, Data); пограмма ждет ответа от системы
Application.ProcessMessages; программа отрабатывает все накопившиеся события (отрисовка, реакция на нажатие кнопок)
Программа работает
Sibedir вне форума Ответить с цитированием
Старый 11.06.2010, 16:47   #30
Ученик.6Б
Пользователь
 
Регистрация: 10.06.2010
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Программа работает
S:=IdHTTP2.Post(<************>, Data); пограмма ждет ответа от системы
Application.ProcessMessages; программа отрабатывает все накопившиеся события (отрисовка, реакция на нажатие кнопок)
Программа работает
Но есть к примеру флудер, взять асек, тоже по этому принципу работает, но такого нет.
Ученик.6Б вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается с циклом armagedon_atyrau Microsoft Office Excel 2 03.06.2010 08:50
помогите с циклом pobedin БД в Delphi 2 28.08.2009 14:56
Задача с циклом for в c++ Many man Помощь студентам 5 14.12.2008 12:01
помогите с циклом Lonix PHP 1 19.09.2008 17:51
Проблема с циклом.. POPOV Помощь студентам 3 29.04.2008 18:36