![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 23.03.2009
Сообщений: 334
|
![]()
Здрасте, вообщем такая проблемка:
У меня Unit10.pas занимает 13378 КБ (13.0 МБ) И при работе в коде 10 формы после 5-10 изменений делфи начинает виснуть на 5-20 сек. (приходится вырезать весь текс кроме нужной процедуры и т.д, вставлять в блокнот, писать процедуру и затем обратно вставлять в делфи вырезанный текст из блокнота). И компелируется тож долговато. Всего 59988 строк. На строчке 400-500 знаков (эт только там где условие, но часть условия(для удобства) переходит на 2 строчку (если все вместить, то будет примерно 35000 строк)) ___________________________________ _ Постараюсь нормально сформулировать что хочу сделать. Есть часть условия: if (Edit40.Text<>t1) and (Edit38.Text<>t1) and (Edit36.Text<>t1) and (Edit34.Text<>t1) and (Edit32.Text<>t1) and (Edit30.Text<>t1) and (Edit28.Text<>t1) and (Edit26.Text<>t1) and (Edit24.Text<>t1) and (Edit22.Text<>t1) and (Edit20.Text<>t1) and (Edit18.Text<>t1) and (Edit16.Text<>t1) and (Edit14.Text<>t1) and (Edit12.Text<>t1) and (Edit10.Text<>t1) and (Edit8.Text<>t1) and (Edit6.Text<>t1) and (Edit4.Text<>t1) and (edit2.Text<>t1) ___________________________________ _ Оно повторяется если быть точным 4200 раз. Изменяются только "номера\имена" эдитов (только четные от 2 до 240) и "t1" (t2, t3, t4, .. ,t35). Хотелось бы задать переменную (Например "Z") и присвоить ей это условие, но так чтобы переменные "t1, t2, t3, .. ,t35)" и "имена\номера" эдитов задавались в каждой процедуре (всего 6 процедур), где находится оставшееся часть условия. Можите подсказать как мне это реализовать? Зарание спс. Последний раз редактировалось ZBEP; 10.04.2009 в 19:59. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Оформить проверку в виде функции.
Если в номерах TEdit нет закономерности, можно передать список номеров Код:
Код:
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 23.03.2009
Сообщений: 334
|
![]()
alexBlack, спасибо))
Закономерность только в том, что берутся каждый 2 эдит до 240 и все впринципи)) 3 самоэкзамена + готовая курсовая и дипломная -хороший стимул)) п.с. Эт только часть условия. Я делаю авто расстановку расписания всего колледжа по семестрам, включая часы работы препадов, самих препадов, дни, скок пар в неделю, пар в семестр, в день, четная нечетная неделя, кабинеты, совмесные пары, и т.д. с возможностью полной автоматики и ручного изменения. Правда еще 1.5 года до здачи но она уже на 85% сделана, осталось немного подравнять и оптимизировать)) П.п.с. Я делфи еще плохо знаю, завтра попытаюсь разобраться и сделать как Вы посоветовали, скорее всего у меня из-за моей пока еще криворукости ниче не выйдет и я опять начну задавать глупые вопроссы.. Лан пока, спс еще раз, я спать. Последний раз редактировалось ZBEP; 10.04.2009 в 23:43. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 07.04.2009
Сообщений: 245
|
![]()
Возможный вариант когда часть текста из файла переносится в отдельный файл и подключается директивой компилятора. Приблизительно так {$I 'DOPFILE.INC'}
естественно, что DOPFILE.INC это имя файла с вынесеным текстом. Тогда эта часть подключится на этапе компиляции и на текстовый редактор не влияет
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Последний раз редактировалось Anatole; 11.04.2009 в 11:53. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 23.03.2009
Сообщений: 334
|
![]()
Все, СПАСИБО БОЛЬШОЕ!
Разобрался, работает))) СПС! Последний вопрос. Есть ли какая нить маленькая программка, которая сможет в тексте на 13МБ заменить это: Код:
Код:
Последний раз редактировалось Stilet; 13.04.2009 в 10:10. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 07.04.2009
Сообщений: 245
|
![]()
вообще то текстовый редактор Delphi имеет функцию поиска с заменой. Но будьте осторожны заменяемое выражение дожно быть везде одинаково
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Последний раз редактировалось Anatole; 11.04.2009 в 13:54. |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Во-первых
if CheckEdits(Form10, [40,38,36,34,32,30,28,26,24,22,20,18 ,16,14,12,10,8,6,4,2], t1) можно заменить на второй вариант функции if CheckEdits(Form10, 2, 40, 2, t1) (c 2-х до 40-ка с шагом 2) Во-вторых, если в тексте есть повторы, то с большой вероятностью их можно выделить в отдельную функцию. Может и не придется делать замены. Программка для автозамены скорее всего существует, но ничего конкретного предложить не могу. Я бы для такой замены написал свою утилитку. Это интересней, чем править 4K строк вручную. |
![]() |
![]() |
![]() |
#8 | ||
Форумчанин
Регистрация: 23.03.2009
Сообщений: 334
|
![]()
Anatole, поиск нашел, замену чет еще ненашел (Ctrl+h некатит)
alexBlack, Цитата:
За Цитата:
|
||
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 07.04.2009
Сообщений: 245
|
![]()
Для поиска с заменой в меню Delphi пишет Ctrl+R
![]()
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Последний раз редактировалось Anatole; 11.04.2009 в 15:29. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 23.03.2009
Сообщений: 334
|
![]()
Anatole, спс.
alexBlack, еще похожий вопросик есть: Вот этот код повторяется 6 раз, изменяются ток дни недели (Понедельник - Суббота) Код:
Я прост пока додумаюсь много времени пройдет. Блин, туплю... Как мне в отдельную функцию засунуть Код:
Последний раз редактировалось ZBEP; 12.04.2009 в 00:24. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
небольшой калькулятор | Shevali | Помощь студентам | 8 | 26.03.2009 21:17 |
Помощь в оптимизации | anger | Общие вопросы Delphi | 13 | 05.11.2007 13:15 |
задачи оптимизации | kirasir | Microsoft Office Excel | 2 | 08.08.2007 00:40 |