IPB

Здравствуйте, гость ( Вход | Регистрация )

> Цикл в Delphi., Проблема с циклом в Delphi!
..::KraN::..
сообщение Dec 13 2007, 16:18
Сообщение #1


Пользователь
**

Группа: Posters
Сообщений: 87
Регистрация: 28.11.2007
Из: Ядрин
Пользователь №: 12,105



Имеется цикл в программе, при его запуске форма сразу же начинает тормозить, а через 10 сек. вообще зависает, помогает только Ctrl+Alt+Del. Хотел пихнуть в поток, но не знаю как sad.gif((((( Помогите, пожалуйста!!!


--------------------
Программист ошибается дважды: первый раз - при рождении, а второй раз - при выборе профессии.

Мой сайт: http://max35soft.narod.ru

Вернуться к началу страницы
 
+Цитировать сообщение
 
Создать новую тему
Ответов (1 - 10)
Amp
сообщение Dec 13 2007, 21:47
Сообщение #2


Мега постер
Иконка группы

Группа: Local moder
Сообщений: 1,712
Регистрация: 21.8.2006
Пользователь №: 1,269



Код покажи.


--------------------
irc-капец

#КартинкА#
Вернуться к началу страницы
 
+Цитировать сообщение
..::KraN::..
сообщение Dec 13 2007, 22:57
Сообщение #3


Пользователь
**

Группа: Posters
Сообщений: 87
Регистрация: 28.11.2007
Из: Ядрин
Пользователь №: 12,105



CODE
If chNoComments.Checked then
begin
s2:=Form1.Synedit1.text;
Application.ProcessMessages;
while pos('', s2);
endln:=endln+3;
delete(s2, start, endln-start);
end;
Form1.SynEdit1.Text:=s2;
end;


--------------------
Программист ошибается дважды: первый раз - при рождении, а второй раз - при выборе профессии.

Мой сайт: http://max35soft.narod.ru

Вернуться к началу страницы
 
+Цитировать сообщение
Gobbs
сообщение Dec 14 2007, 19:13
Сообщение #4


Супер постер
Иконка группы

Группа: Local moder
Сообщений: 888
Регистрация: 23.10.2005
Из: п.Кугеси
Пользователь №: 106



Цитата(..::KraN::.. @ Dec 13 2007, 16:18) *
Имеется цикл в программе, при его запуске форма сразу же начинает тормозить, а через 10 сек. вообще зависает, помогает только Ctrl+Alt+Del. Хотел пихнуть в поток, но не знаю как sad.gif((((( Помогите, пожалуйста!!!

В тему баян:"Учёные Японии придумали майнфрейм, который может вычислить бесконечный цикл за полторы секунды". smile.gif
Цитата(..::KraN::.. @ Dec 13 2007, 22:57) *
CODE
If chNoComments.Checked then
while pos('', s2);

весь цикл замыкается здесь. s2 в нём не изменяется=> зависание. Видимо, автор хотел получить что-то подобное:
Код
while pos('', s2)
         begin
            endln:=endln+3;
            delete(s2, start, endln-start);
         end;
Вернуться к началу страницы
 
+Цитировать сообщение
..::KraN::..
сообщение Dec 14 2007, 21:11
Сообщение #5


Пользователь
**

Группа: Posters
Сообщений: 87
Регистрация: 28.11.2007
Из: Ядрин
Пользователь №: 12,105



Блин, чё такое? Почему код неправильно скопировался???

Вот настоящий код:

CODE
If chNoComments.Checked then

begin

s2:=Form1.Synedit1.text;

Application.ProcessMessages;

while pos('', s2);

endln:=endln+3;

delete(s2, start, endln-start);

end;

Form1.SynEdit1.Text:=s2;

end;


--------------------
Программист ошибается дважды: первый раз - при рождении, а второй раз - при выборе профессии.

Мой сайт: http://max35soft.narod.ru

Вернуться к началу страницы
 
+Цитировать сообщение
..::KraN::..
сообщение Dec 14 2007, 21:13
Сообщение #6


Пользователь
**

Группа: Posters
Сообщений: 87
Регистрация: 28.11.2007
Из: Ядрин
Пользователь №: 12,105



Непонял...

Короче, вместо строчки

while pos('<!--', s2) begin

должно быть

  while pos('<!--', s2)<>0 do begin

Вот...


--------------------
Программист ошибается дважды: первый раз - при рождении, а второй раз - при выборе профессии.

Мой сайт: http://max35soft.narod.ru

Вернуться к началу страницы
 
+Цитировать сообщение
AndrewDragon
сообщение Dec 14 2007, 21:21
Сообщение #7


Устаревший Дракон
Иконка группы

Группа: Global moder
Сообщений: 1,579
Регистрация: 10.10.2005
Из: NChK
Пользователь №: 100



сделай скриншот кода :-)


--------------------
Атдам наски в хорошие руки. Цвет мокрый асфальт. Запах мокрые ноги. Пробег 17 км. На ходу. Требуют стирки. Вывертыш.

и почему вам 17 лет?..
Вернуться к началу страницы
 
+Цитировать сообщение
..::KraN::..
сообщение Dec 14 2007, 21:58
Сообщение #8


Пользователь
**

Группа: Posters
Сообщений: 87
Регистрация: 28.11.2007
Из: Ядрин
Пользователь №: 12,105



Воть:

  If chNoComments.Checked then
    begin
     s2:=Form1.Synedit1.text;
     Application.ProcessMessages;
        while pos('<!--', s2)<>0 do begin
        start:=Pos('<!--', s2);
        endln:=Pos('-->', s2);
        endln:=endln+3;
        delete(s2, start, endln-start);
        end;
  Form1.SynEdit1.Text:=s2;
  end;


--------------------
Программист ошибается дважды: первый раз - при рождении, а второй раз - при выборе профессии.

Мой сайт: http://max35soft.narod.ru

Вернуться к началу страницы
 
+Цитировать сообщение
LLeSS
сообщение Dec 14 2007, 22:07
Сообщение #9


N.N.G.
***

Группа: Posters
Сообщений: 292
Регистрация: 16.10.2005
Пользователь №: 103



ты суть скажи, че ты хочешь на примерах. т.е. что есть, что делать, какой результат
Вернуться к началу страницы
 
+Цитировать сообщение
..::KraN::..
сообщение Dec 15 2007, 15:41
Сообщение #10


Пользователь
**

Группа: Posters
Сообщений: 87
Регистрация: 28.11.2007
Из: Ядрин
Пользователь №: 12,105



Цитата(LLeSS @ Dec 14 2007, 22:07) *
ты суть скажи, че ты хочешь на примерах. т.е. что есть, что делать, какой результат


Из кода должно быть понятно.


Короче, программа должна удалять из HTML файла, загруженного в Synedit, комментарии, всего-то! Удалять она удаляет, но при большом файле программа виснет, виснет как раз на этом цикле - проверял трассировкой!


--------------------
Программист ошибается дважды: первый раз - при рождении, а второй раз - при выборе профессии.

Мой сайт: http://max35soft.narod.ru

Вернуться к началу страницы
 
+Цитировать сообщение
andvi
сообщение Mar 28 2008, 19:42
Сообщение #11


Новичок
*

Группа: Members
Сообщений: 20
Регистрация: 7.4.2007
Из: Шир, Хоббитон
Пользователь №: 6,001



Application.processmessages на самом деле не продолжает работу программы
, лишь сигнализирует системе, что программа занятаwink.gif
Интересует вынос в потоки, пиши в пм, здесь мало места, чтобы всё расписать


--------------------
//The P@Kx86\\
Он же PaveLiArcH
Вернуться к началу страницы
 
+Цитировать сообщение

ОтветитьСоздать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 3rd May 2024 - 00:02