Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Цикл до определеного условия? 
:(
    Опции темы
WaReZMEN
Дата 23.7.2008, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Вообщем есть у меня код:
Код

  Repeat
    ...

  Until P<>''; 

Все это делается в кансоле работает все отлично кроме того что процессор загружается на 99% что не очень хорошо... Что хочется: организовать некий процесс каторый ждал бы когда именится условие P<>'' . Выполнил определеное деиствие и равершил свою работу... Только как это организовать не ясно... Есть у каго какие идеи?
PM MAIL ICQ   Вверх
Данкинг
Дата 23.7.2008, 01:09 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



 smile жалко мне наш великий и могучий русский язык иногда бывает... Даже не иногда, а с каждым днём всё чаще... Я даже значения некоторых слов-то не знаю, к примеру, что такое "вообщем" - понятия не имею. smile 
По теме: зачем что-то изобретать, когда оное уже изобретено. smile Ну, в качестве альтернативы можно предложить проверку условия с переходом на метку. Т.е.:

Код

label aaa;
...
if p<>'xxx' then goto aaa;



Это сообщение отредактировал(а) Данкинг - 23.7.2008, 01:10


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
WaReZMEN
Дата 23.7.2008, 03:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Данкинг, Прошу прощение за ошибки русский это моя слабость.... по поводу Goto...label Еще в школе учили что чем больше goto тем ниже квалификация программиста... К томуже эта канструкция практически не чем не отлечается от Repeat   ...  Until P<>''. Процессор попрежнему весь загружен... Вообще нужно сделать какоито системный процес и делать через него но как я не вкурсе... smile  
PM MAIL ICQ   Вверх
THandle
Дата 23.7.2008, 05:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



WaReZMEN, можно использовать например ожидание в цикле, миллисекунд этак 200-400. Можно, я думаю использовать дополнительный поток...
PM   Вверх
WaReZMEN
Дата 23.7.2008, 05:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



THandle, с задержкои све ок спасибо большое!!!! Но про паток тоже интересно если можно раскажи. smile 
PM MAIL ICQ   Вверх
THandle
Дата 23.7.2008, 05:49 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Лучше чем тут, про потоки уже нигде не расскажут:

http://forum.vingrad.ru/forum/topic-60076.html

PM   Вверх
Данкинг
Дата 23.7.2008, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(WaReZMEN @  23.7.2008,  04:02 Найти цитируемый пост)
Еще в школе учили что чем больше goto тем ниже квалификация программиста... 

Вопрос часто обсуждаемый и весьма и весьма спорный... smile Я так не считаю. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Snowy
Дата 23.7.2008, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Проверять всё равно придётся.
Но тут поможет простое отпускание треда.
Дай в цикле строчку 
Код
  Sleep(32);
и нагрузки не станет.

Добавлено через 3 минуты и 14 секунд
Цитата(Данкинг @  23.7.2008,  10:46 Найти цитируемый пост)
Вопрос часто обсуждаемый и весьма и весьма спорный...  Я так не считаю.  
GoTo - плохой тон.
Да и никакого отношения к решению вопроса не имеет.
Ну абсолютно никакого.
Просто замена нормально конструкции на идиотскую.
Код ухудшается, а результата по прежнему никакого.
PM MAIL   Вверх
Rennigth
Дата 23.7.2008, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 15
Всего: 76



Snowy, а почему sleep именно 32? Методом проб и ошибок подобранно? Почему не Sleep(0)? разницы то почти не будет, а может и совсем не будет...


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Snowy
Дата 23.7.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



32 - стандартный тайминг.
А ноль не во всех версиях винды срабатывает...
В теории должен. На практике вот...
PM MAIL   Вверх
Данкинг
Дата 23.7.2008, 21:58 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Snowy @  23.7.2008,  13:01 Найти цитируемый пост)
GoTo - плохой тон.

Ну да, как же, а ещё каждую строчку кода следует непременно комментировать, а процедурам давать имена вроде "my_procedure_for_timer1". smile  smile Ах да, на закрытие формы ещё следует повесить окно "Вы увеерны?" Тогда плохого тона не будет. smile 

Цитата(Snowy @  23.7.2008,  13:01 Найти цитируемый пост)
Да и никакого отношения к решению вопроса не имеет.

Я привёл другой вариант решения данной задачи. Нагрузку на процессор при этом не проверял. smile 



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
WaReZMEN
Дата 24.7.2008, 01:39 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



когда THandle сказал попробовать задержку я именно sleep и поставил smile так что всем спасибо!
PM MAIL ICQ   Вверх
greenpc
Дата 24.7.2008, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.1.2007

Репутация: нет
Всего: нет



Snowy
вроде Application.ProcessMessages тоже не отменяли
PM   Вверх
sai_NT
Дата 24.7.2008, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 8.8.2007

Репутация: 1
Всего: 3



Цитата(greenpc @ 24.7.2008,  09:15)
Snowy
вроде Application.ProcessMessages тоже не отменяли

Не отменяли, но нагрузки на проц это не уменьшит, просто окно сможет обрабатывать посылаемые ей сообщения =)
PM MAIL   Вверх
Snowy
Дата 24.7.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Ну Sleep здесь нужен не для задержки, а для переключения треда.
Задержка здесь - побочный эффект.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0603 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.