Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2016, 07:55   #1
fantom-AS
 
Регистрация: 07.04.2016
Сообщений: 5
По умолчанию Delphi оптимизация программы.

Доброго времени суток. Столкнулся с такой проблемой: программа автозамены текста занимает продолжительное время, возможно ли как-нибудь оптимизировать код для увеличения производительности.(только редактируемых частей в тексте встречается от 6к.)Вследствии этого программа работает долго от 2-х часов.
P.S. я только учусь.

Последний раз редактировалось fantom-AS; 07.04.2016 в 12:52.
fantom-AS вне форума Ответить с цитированием
Старый 07.04.2016, 08:13   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Для начала выбрось Memo и работай со TStringList. Memo не для массового редактирования строк. Алгоритм замены чудной - находишь в одной строке, меняешь в следующих. Ошибки записи в не существующие строки нет?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.04.2016, 08:23   #3
fantom-AS
 
Регистрация: 07.04.2016
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Для начала выбрось Memo и работай со TStringList.)
-ОК, спс буду двигаться в этом направлении.

Цитата:
Сообщение от Аватар Посмотреть сообщение
Алгоритм замены чудной - находишь в одной строке, меняешь в следующих. Ошибки записи в не существующие строки нет?
-Алгоритм правильный. Все работает.(Ищет в тексте блок, начинающийся с символа который ищем, далее в строки с координатами X,Y(2-я и 3-я строки после найденного символа) добавляем коэффициэнты масштабирования зависящие от длины и ширины заготовки.)

Спс огромное за ответ.

Все работает на ура! Благодарочка .

Последний раз редактировалось fantom-AS; 07.04.2016 в 09:22.
fantom-AS вне форума Ответить с цитированием
Старый 07.04.2016, 09:28   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Как звучит задание в оригинале?
какие критерии поиска/замены?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 07.04.2016, 09:44   #5
fantom-AS
 
Регистрация: 07.04.2016
Сообщений: 5
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Как звучит задание в оригинале?
какие критерии поиска/замены?
Работаю программистом(ток начал). Есть некий NC-код управляющей программы Woodwop. Код построен таким образом: разделен на блоки начинающиеся с символа(который ищем вначале), далее в блоке записаны значения X, Y(каждый в свою строку). Значения X и Y(пример 1-ый блок X1=... , Y1=... ; 2-ой блок X2=X1+... , , Y2=Y1+... и таких блоков от 6000).
Моя программа ищет в цикле блок и если находит, тогда добавляет коэффициент масштабирования(X'n'=X'n-1'*(коэффициэнт по оси X)).
В итоге получаем NC-код в котором при изменении длины и ширины заготовки масштабируется рисунок(фрезеровка).
fantom-AS вне форума Ответить с цитированием
Старый 07.04.2016, 09:48   #6
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Используйте регулярные выражения. Какая версия Delphi?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 07.04.2016, 09:56   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Есть некий NC-код
а-ну покаж!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 07.04.2016, 10:11   #8
fantom-AS
 
Регистрация: 07.04.2016
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Используйте регулярные выражения. Какая версия Delphi?
Delphi 7.
Программу уже оптимизировал, работает за секунды.
fantom-AS вне форума Ответить с цитированием
Старый 07.04.2016, 10:18   #9
fantom-AS
 
Регистрация: 07.04.2016
Сообщений: 5
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а-ну покаж!
вот сходный код и что должно вырисовывает станок.

Последний раз редактировалось fantom-AS; 07.04.2016 в 12:52.
fantom-AS вне форума Ответить с цитированием
Старый 07.04.2016, 10:26   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
вот сходный код и что должно вырисовывает станок.
накой икс мне скриншот? файлы дай.
хотя, раз само наладилось, и не надо.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация программы на Си evgenybal Помощь студентам 6 15.03.2016 15:17
Оптимизация программы danil123 Общие вопросы Delphi 8 20.01.2013 19:34
Оптимизация программы Семоха Валерий Помощь студентам 1 26.05.2012 14:04
Оптимизация программы GoldSieg Паскаль, Turbo Pascal, PascalABC.NET 17 22.05.2012 13:33
Оптимизация программы Lenya Помощь студентам 2 05.01.2011 18:56