|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Как правильно проверить освободился фаил или нет?
В этой процедуре программа зацикливается, реагирует на все кроме кнопки завершения . Есть подозрение что в цикле while not RenameFile(FlacName+'.wav',FlacName+'t.wav') do Application.ProcessMessages;
возможно по какой то причине фаил не создан Подскажите пожалуйста как лучше решить и обойти эту проблему? программа может проработать 1минуту , а может и 10 мин. PHP код:
Последний раз редактировалось Siropchik, 08.02.2012 в 22:34. |
#2
|
||||
|
||||
Скорее всего в while. Например, если файл не найден. Или если он открыт другим процессом. Хотя в код особо не вчитывался.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
Я перед циклом фаил создаю и записываю в него данные
А сам цикл нужен для того что бы подождать когда фаил освободится от других процессов, что бы потом можно было запустить преобразования файла в другой формат |
#4
|
||||
|
||||
Посмотри использование ключа {$I+/-}
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#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+} Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 08.02.2012 в 23:04. |