Цикл в Delphi., Проблема с циклом в Delphi! |
Здравствуйте, гость ( Вход | Регистрация )
Цикл в Delphi., Проблема с циклом в Delphi! |
Dec 13 2007, 16:18
Сообщение
#1
|
|
Пользователь Группа: Posters Сообщений: 87 Регистрация: 28.11.2007 Из: Ядрин Пользователь №: 12,105 |
Имеется цикл в программе, при его запуске форма сразу же начинает тормозить, а через 10 сек. вообще зависает, помогает только Ctrl+Alt+Del. Хотел пихнуть в поток, но не знаю как ((((( Помогите, пожалуйста!!!
-------------------- Программист ошибается дважды: первый раз - при рождении, а второй раз - при выборе профессии.
Мой сайт: http://max35soft.narod.ru |
|
|
Dec 13 2007, 21:47
Сообщение
#2
|
|
Мега постер Группа: Local moder Сообщений: 1,712 Регистрация: 21.8.2006 Пользователь №: 1,269 |
Код покажи.
-------------------- |
|
|
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 |
|
|
Dec 14 2007, 19:13
Сообщение
#4
|
|
Супер постер Группа: Local moder Сообщений: 888 Регистрация: 23.10.2005 Из: п.Кугеси Пользователь №: 106 |
Имеется цикл в программе, при его запуске форма сразу же начинает тормозить, а через 10 сек. вообще зависает, помогает только Ctrl+Alt+Del. Хотел пихнуть в поток, но не знаю как ((((( Помогите, пожалуйста!!! В тему баян:"Учёные Японии придумали майнфрейм, который может вычислить бесконечный цикл за полторы секунды". CODE If chNoComments.Checked then while pos('', s2); весь цикл замыкается здесь. s2 в нём не изменяется=> зависание. Видимо, автор хотел получить что-то подобное: Код while pos('', s2)
begin endln:=endln+3; delete(s2, start, endln-start); end; |
|
|
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 |
|
|
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 |
|
|
Dec 14 2007, 21:21
Сообщение
#7
|
|
Устаревший Дракон Группа: Global moder Сообщений: 1,579 Регистрация: 10.10.2005 Из: NChK Пользователь №: 100 |
сделай скриншот кода :-)
-------------------- Атдам наски в хорошие руки. Цвет мокрый асфальт. Запах мокрые ноги. Пробег 17 км. На ходу. Требуют стирки. Вывертыш. и почему вам 17 лет?.. |
|
|
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 |
|
|
Dec 14 2007, 22:07
Сообщение
#9
|
|
N.N.G. Группа: Posters Сообщений: 292 Регистрация: 16.10.2005 Пользователь №: 103 |
ты суть скажи, че ты хочешь на примерах. т.е. что есть, что делать, какой результат
|
|
|
Dec 15 2007, 15:41
Сообщение
#10
|
|
Пользователь Группа: Posters Сообщений: 87 Регистрация: 28.11.2007 Из: Ядрин Пользователь №: 12,105 |
ты суть скажи, че ты хочешь на примерах. т.е. что есть, что делать, какой результат Из кода должно быть понятно. Короче, программа должна удалять из HTML файла, загруженного в Synedit, комментарии, всего-то! Удалять она удаляет, но при большом файле программа виснет, виснет как раз на этом цикле - проверял трассировкой! -------------------- Программист ошибается дважды: первый раз - при рождении, а второй раз - при выборе профессии.
Мой сайт: http://max35soft.narod.ru |
|
|
Mar 28 2008, 19:42
Сообщение
#11
|
|
Новичок Группа: Members Сообщений: 20 Регистрация: 7.4.2007 Из: Шир, Хоббитон Пользователь №: 6,001 |
Application.processmessages на самом деле не продолжает работу программы
, лишь сигнализирует системе, что программа занята Интересует вынос в потоки, пиши в пм, здесь мало места, чтобы всё расписать -------------------- //The P@Kx86\\
Он же PaveLiArcH |
|
|
Текстовая версия | Сейчас: 3rd May 2024 - 00:02 |