Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146

Цикл не работает

10.03.2015, 23:42. Показов 3037. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Несколько месяцев не включал делфи и понял что хорошенько отупел за это время поэтому заранее извиняюсь за тупость...

Вобщем есть код:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
  i:integer;
  RegExp:TRegExpr;
begin
  i:=0;
  RegExp:=TRegExpr.Create;
  RegExp.Expression:='[(.*?)]';
  //отправляется запрос
 
    if RegExp.Exec('запрос_переменная') then
    begin
 
      repeat
      // парсится 50 значений
      until not RegExp.ExecNext;
 
    end;
 
  RegExp.Free;
end;
в SpinEdit указывается количество данных (например 150) которое нужно спарсить, как правильно сделать цикл (while i<sSpinEdit1.Value do begin и потом в конце inc(i) , отупел изрядно, забыл даже элементарное) чтобы 3 раза обновило запрос (страницу) и спарсило 150 значений? Т.е запрос с которого парсятся данные должен 3 раза обновится (т.к на странице отображается 50 значений). Спасибо


Пробовал делать вот так:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
  i:integer;
  RegExp:TRegExpr;
begin
  i:=0;
  RegExp:=TRegExpr.Create;
  RegExp.Expression:='[(.*?)]';
  while i<sSpinEdit1.Value do
  begin
  //отправляется запрос
 
    if RegExp.Exec('запрос_переменная') then
    begin
 
      repeat
      // парсится 50 значений
      inc(i);
      until not RegExp.ExecNext;
    end;
  end;
  RegExp.Free;
end;
но не работало (что странно), хотя да, ничего странного, цикл не в том месте...

Добавлено через 9 часов 21 минуту
up..............
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.03.2015, 23:42
Ответы с готовыми решениями:

Цикл: как работает цикл в цикле
Не могу понять как работает цикл в цикле например: repeat begin lalalala if что-то1&lt;&gt;100 then begin lalalala2 ...

Цикл не работает
В процедуре есть цикл, при выполнении этой процедуры, значения переменной цикла выходит за заданные пределы, т.е. for i := x-1 to 1 do, i...

Не работает цикл
Что не так с этим циклом? Надо что бы введенный в эдит номер маршрута отображался в мемо с начальным пунктом А и конечным В, если таких нет...

37
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146
13.03.2015, 21:20  [ТС]
Студворк — интернет-сервис помощи студентам
Просто не могу понять, почему запрос не повторяется
Вы не пробовали делать что я говорил, даже обычными сообщениями узнать сколько раз повторяется цикл?

тут про запрос еще рано говорить, мне сначала надо чтобы софт парсил указанное количество а не все данные...
0
30 / 30 / 9
Регистрация: 25.12.2014
Сообщений: 115
13.03.2015, 21:21
А сколько парсится значений?
0
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146
13.03.2015, 21:24  [ТС]
А сколько парсится значений?
все (порядка 40-50шт) а нужно например 5, а уже тогда про запрос поговорим
0
30 / 30 / 9
Регистрация: 25.12.2014
Сообщений: 115
13.03.2015, 21:26
5 значений всего?
0
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146
13.03.2015, 21:30  [ТС]
5 значений всего?
вообще это указывается в спинэдит, число меняется...
0
30 / 30 / 9
Регистрация: 25.12.2014
Сообщений: 115
13.03.2015, 21:32
Я понимаю, но речь же вроде шла про 150, а не 5 значений. Что-то не догоняю)))
0
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146
13.03.2015, 21:35  [ТС]
Я понимаю, но речь же вроде шла про 150, а не 5 значений. Что-то не догоняю)))
на странице 50 зачений допустим, чтобы спарсило 150 - нужно отправить 3 раза запрос, логично? логично, а если нужно спарсить 5 при допустимых 50 значениях то запрос достаточно отправить 1 раз (я же говорил что про цикл для запроса, чтобы он повторялся, говорить еще рано)
0
30 / 30 / 9
Регистрация: 25.12.2014
Сообщений: 115
13.03.2015, 21:40
Если только 5 то доп проверку сделать в цикле репит, не равно ли оно spinedit.value
0
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146
13.03.2015, 21:47  [ТС]
Если только 5 то доп проверку сделать в цикле репит, не равно ли оно spinedit.value
пример пожалуйста
0
30 / 30 / 9
Регистрация: 25.12.2014
Сообщений: 115
13.03.2015, 21:52
Лучший ответ Сообщение было отмечено HA3AP93 как решение

Решение

чтото типо этого
Delphi
1
2
3
4
5
6
7
8
if RegExp.Exec('запрос_переменная') then
    begin
 
      repeat
      // парсится 50 значений
      inc(i);
      until (not RegExp.ExecNext) or (i = sSpinEdit1.Value);
    end;
1
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146
13.03.2015, 21:58  [ТС]
pavel_pushok,

Code
1
until (not RegExp.ExecNext) or (i = sSpinEdit1.Value);
работает, но разве нет другого способа с таким же кодом? просто я циклы использовал большое количество раз но в таком виде еще ни разу... теперь давай перейдем к запросу, достаточно ли будет while True do begin чтобы он постоянно обновлялся?
0
30 / 30 / 9
Регистрация: 25.12.2014
Сообщений: 115
13.03.2015, 22:01
С таким он будет бесконечен, нужен ещё и будет выход из цикла.
0
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146
13.03.2015, 22:06  [ТС]
С таким он будет бесконечен, нужен ещё и будет выход из цикла.
ну да) но нужно до тех пор пока счетчик не будет равен sSpinEdit, другие предложения?
0
30 / 30 / 9
Регистрация: 25.12.2014
Сообщений: 115
13.03.2015, 22:13
Лучший ответ Сообщение было отмечено HA3AP93 как решение

Решение

Оставить как есть) чем не устраивает, просто с доп проверкой в репит
1
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146
13.03.2015, 22:14  [ТС]
Оставить как есть) чем не устраивает, просто с доп проверкой в репит
пример проверки?
0
30 / 30 / 9
Регистрация: 25.12.2014
Сообщений: 115
13.03.2015, 22:19
вот)
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
while i<sSpinEdit1.Value do
  begin
  //отправляется запрос
 
    if RegExp.Exec('запрос_переменная') then
    begin
 
      repeat
      // парсится 50 значений
      inc(i);
      until (not RegExp.ExecNext) or (i = sSpinEdit1.Value);
    end;
  end;
0
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146
13.03.2015, 22:29  [ТС]
вот)
ааа, ты об этом, я почему-то цикл после запроса ставил но вообще ведь я в начале поста правильно написал, нужно было просто проверку сделать i=sSpinEdit1.Value и все...

Добавлено через 3 минуты
pavel_pushok, слава баранам!!! заработало!!! спасибо тебе большое, очень помог!!!
0
30 / 30 / 9
Регистрация: 25.12.2014
Сообщений: 115
13.03.2015, 22:30
Лучший ответ Сообщение было отмечено HA3AP93 как решение

Решение

нет за что) на то и форумы чтобы помогать)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.03.2015, 22:30

Не работает цикл
Добрый день. Подскажите пожалуйста что я не так делаю. Вот код var p1, p2,o: Integer; S,s1,s2,s3,s4: string; begin if ...

Неправильно работает цикл
Эта программка должна брать по символу/числу из Edit1 отнимать 200 *200-66(B)=134*и затем отнимать от результата последовательно кол.во ...

Неправильно работает цикл FOR ?!
В представленном ниже коде цикл FOR - НЕ останавливается при достижении значения - 1, тем самым вызывая ошибку... Почему??? ...

Не работает цикл в потоке
Вот писал программу,в ней цикл,достаточно длинный поэтому форма зависала,если просто процедуру в основной поток заносить,пришлось...

Почему это не работает (цикл while) ?
Вот кусок кода. Это часть конструкции Case of. При выборе одного из условий Комбобокса должно выполняться. То есть значения функции...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru