![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
-=PriZraK=-
Форумчанин
Регистрация: 12.12.2007
Сообщений: 399
|
![]()
Доброе время суток!
![]() Помогите пожалуйста оптимизировать код данной функции. С её помощью файл разбивается на "куски" определённого размера. Я собираю прогу в которой одновременно можно "резать" больше 1-го файла. Но вот незадача...стоит начать "резать" этой функцией файл, как прога уже не отвечает. Я уже как мог экспериментировал с application.processmessages...не помогает. Пожалуйста, подскажите, как "разморозить" прогу во время выполнения одной или нескольких таких функций? Код:
![]() Последний раз редактировалось prizrak1390; 10.12.2009 в 21:57. Причина: Ступил.... XD |
![]() |
![]() |
![]() |
#2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
Странно...
Всегда помогало (да и просто необходимо для отображения хода операции) Код:
|
![]() |
![]() |
![]() |
#3 |
-=PriZraK=-
Форумчанин
Регистрация: 12.12.2007
Сообщений: 399
|
![]()
mihali4, да ладно уже с отображением прогресса. Я пробовал и Ваш вариант. Дошло до того, что почти после КАЖДОЙ строчки поставил application.processmessages...но что бы Вы думали? Файл режется, прогресс отображается...но прога висит. И процесс отображается лишь, когда создан новый "кусок". И в такой момент прога на одну секунду "отмерзает". Но потом опять анабиоз...
|
![]() |
![]() |
![]() |
#4 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
Так пройдитесь по шагам и посмотрите, на какой строке у вас "морозит"...
|
![]() |
![]() |
![]() |
#5 |
-=PriZraK=-
Форумчанин
Регистрация: 12.12.2007
Сообщений: 399
|
![]()
Ну тут в глаза бросается:
Код:
![]() |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 15.02.2008
Сообщений: 621
|
![]()
prizrak1390, а почему бы вам эту ф-ию не запускать в отдельной нити (TThread помоему так пишеться)???? И Замараживаться перестанет =)
Помог? Ну так нажми на весы!
![]() |
![]() |
![]() |
![]() |
#7 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Если память не подводит, это TStream, а CopyFrom, это функция перегонки данных (байт) из одной части в другую (будь то память файл и т.п.), т.е. ручками читаем и пишем например порциями в 1024 байта, и в это же время вызываем Application.ProcessMessages.
|
![]() |
![]() |
![]() |
#8 |
-=PriZraK=-
Форумчанин
Регистрация: 12.12.2007
Сообщений: 399
|
![]()
SNUPYуже думал об этом. Но хочется, как можно проще код сделать...
![]() BOBAH13 То есть использовать blockread и blockwrite? Я не очень силен в этом. Помогите реализовать... ![]() |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 15.02.2008
Сообщений: 621
|
![]()
Замени sStream.CopyFrom(fs, SizeofFiles);
на это Код:
Помог? Ну так нажми на весы!
![]() |
![]() |
![]() |
![]() |
#10 |
-=PriZraK=-
Форумчанин
Регистрация: 12.12.2007
Сообщений: 399
|
![]()
SNUPY,сейчас попробуемс
![]() ---- Вообщем...попробовал. Провел пару экспериментов даже, эффекта нету :'( Но за помощь все равно спасибо. Последний раз редактировалось prizrak1390; 10.12.2009 в 23:37. |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Оптимизация | Viper1287 | Операционные системы общие вопросы | 7 | 13.09.2009 15:33 |
Оптимизация | Flangini | Microsoft Office Excel | 5 | 11.06.2009 11:48 |
Запуск процедуры из процедуры с дополнением | 1sal1 | Общие вопросы Delphi | 3 | 06.10.2008 21:54 |
Оптимизация кода. | MAKTECYMA | Общие вопросы C/C++ | 2 | 05.06.2008 16:48 |
Оптимизация | Terran | Общие вопросы Delphi | 3 | 03.05.2008 19:03 |