![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
В этой процедуре программа зацикливается, реагирует на все кроме кнопки завершения . Есть подозрение что в цикле while not RenameFile(FlacName+'.wav',FlacName+'t.wav') do Application.ProcessMessages;
возможно по какой то причине фаил не создан Подскажите пожалуйста как лучше решить и обойти эту проблему? программа может проработать 1минуту , а может и 10 мин. PHP код:
Последний раз редактировалось Siropchik, 08.02.2012 в 22:34. |
|
#2
|
||||
|
||||
|
Скорее всего в while. Например, если файл не найден. Или если он открыт другим процессом. Хотя в код особо не вчитывался.
|
|
#3
|
|||
|
|||
|
Я перед циклом фаил создаю и записываю в него данные
А сам цикл нужен для того что бы подождать когда фаил освободится от других процессов, что бы потом можно было запустить преобразования файла в другой формат |
|
#4
|
||||
|
||||
|
Посмотри использование ключа {$I+/-}
|
|
#5
|
|||
|
|||
|
Честно говоря я не знаю что это за зверь, я не профессионал
я так понял это деректива , но где ее прописывать? Цитата:
Последний раз редактировалось Siropchik, 08.02.2012 в 22:56. |
|
#6
|
||||
|
||||
|
Код:
{$I-}
assignFile(fw,FlacName+'.wav');
rewrite(fw);
if IOResult = 0 then
begin
blockWrite(fw,waveHdr,sizeOf(waveHdr)); //записать заголовок wave
blockWrite(fw,proc_buf[0],qz);
closeFile(fw);
end;
{$I+} Последний раз редактировалось angvelem, 08.02.2012 в 23:04. |
|
#7
|
|||
|
|||
|
Сделал как написано , теперь подвисает сразу
|
|
#8
|
|||
|
|||
|
Цитата:
Вот так пойдет if not FileExists(FlacName+'.wav') then Exit; Последний раз редактировалось Siropchik, 08.02.2012 в 23:09. |
|
#9
|
||||
|
||||
|
Вот и ищи где загвоздка.
|
|
#10
|
|||
|
|||
|
Странно но все равно виснет
еще сделал проверку файла после ShellExecute но все так же и виснет |
|
#11
|
||||
|
||||
|
"Прошагать" пробовал?
|
|
#12
|
|||
|
|||
|
Щас попробую
|
|
#13
|
|||
|
|||
|
Выяснил что зависалово начинается в цикле после ShellExecute
хотя фаил создается на диск но не переименовывается Прошагать не получается, даже на Break не реагирует PHP код:
|
|
#14
|
|||
|
|||
|
получается здесь меня выкидывает из процедуры и по этому фаил не переименовывается
Цитата:
|
|
#15
|
|||
|
|||
|
Проработал 5 мин. и завис
Незнаю что туда кроме Sleep можно приткнуть Сделал так: Цитата:
Посоветуйте решение Последний раз редактировалось Siropchik, 08.02.2012 в 23:57. |