![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Nic442 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 5.4.2006 Где: Советский Союз Репутация: нет Всего: нет |
Есть батник который создает два файла. Я их копирую в разные папки, но дело в том, что перед началом копирования файлы иногда ещё не успевают создаться, и в следствии чего не копируются. (я это проверял так: понастовлял сообщений. При быстром закрытии их вылетала ошибка, при медленном всё нормально работало)
Как мне определить, что файлы уже созданы и можно приступать к копированию??? |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
|
|||
|
||||
| Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 5 Всего: 29 |
Yanis, к сожалению если бы изначально все файловые системы были транзакционной модели, то данный код был бы верен. Выход из ситуации: CreateProcess с запуском батника и WaitFor...
|
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
В случае, если фалы создаются консольными приложениями есть еще выход:
В конце .bat-файла формировать файл-флажок. А в программе в цикле проверять его наличие. -------------------- |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
||||
|
||||
| Nic442 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 5.4.2006 Где: Советский Союз Репутация: нет Всего: нет |
Демо, Еще весь прикол в том, что после копирования я запускаю скопированный файл средствами делфи, а файл еще не успевает скопироваться и вылетает ошибка.
т.е. до копирования я запускаю батник( сделал там флажок), после копирования я запускаю скопированный файл (но дело еще в том, что он не обезательно будет существовать) А можно пример с CreateProcess... |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Nic442,
Ты бы сказал сначала, как файлы создаются. От этого можно уже отталкиваться. Добавлено @ 21:09 Вообще, описал бы весь процесс - что тебе нужно, и какие средства используются на каждом этапе. А то ничего не понятно - что, зачем, как роисходит... -------------------- |
|||
|
||||
| Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 5 Всего: 29 |
Саня, я бы сказал "ну вы блин даете"... Сам понял что сказал? (А давайте сделаем подводную лодку, а когда она поплывет - запустим из нее торпеду которая когда доплывет, скажет всему миру что лодка уже плавает). В местном факе должен быть... |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Ну дык вроде понятно. Ну если нет, попробую детальнее... Вот пример .bat-файла с таким условием:
В первых 2-х строках формирование файлов, в последней - формирование файла-флажка. ПРограмма, которая ожидает окончания формирования файлов, ожидает, проверяя периодически в цикле появление файла flag.txt. -------------------- |
|||
|
||||
| Nic442 |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 5.4.2006 Где: Советский Союз Репутация: нет Всего: нет |
Rouse_,
ВСЕ что я нашел в faq
Объясняю подробнее. (Батник работает с компилятором) Создаю вначале файл с кодом, потом батник. Запускаю батник, он создаёт 3 файла *.exe, *.obj и *.txt(как флаг сгодился и для проги нужен). Первые два файла могут и не создаться, это зависит от кода. Далее я копирую файлы *.obj и *.exe (если есть) в разные папки. И последний шаг - запускаю скопированный экзешник (Тут вторая ошибка. Файлы иногда не успевают скопироваться в другую директорию. Старые с которых копировались файлы удаляются).
|
||||
|
|||||
| evilbllodydemon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 28.4.2006 Где: Кисловодск Репутация: 4 Всего: 4 |
решение "в лоб"
Это сообщение отредактировал(а) evilbllodydemon - 7.5.2006, 10:35 |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
С первым ясно. Решение уже было приведено.
А вот это непонятно. -------------------- |
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 1 Всего: 6 |
А ты bat-файл синхронно запускаешь или асинхронно?
Или это уже не в тему? Это сообщение отредактировал(а) Тутанхамец - 7.5.2006, 12:02 |
|||
|
||||
| Nic442 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 5.4.2006 Где: Советский Союз Репутация: нет Всего: нет |
по моему разобрался. Глючный батник :-(
Не подскажите, можно ли это сделать без батника. Через ShellExecute ???? (т.к. у пользователя ограниченные права на запуск батников и cmd )
Это сообщение отредактировал(а) Nic442 - 7.5.2006, 16:03 |
|||
|
||||
| Dimannn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 318 Регистрация: 14.4.2005 Где: Владимир Репутация: нет Всего: 1 |
Nic442, В этом батнике русские буквы. Он работать не будет по определению.
Да, и попробуй заменить корявое на
Это выдаст полное описание ошибки -------------------- Хотите быстро и без проблем опубликовать вашу программу в сети за 5 минут? Тогда потратьте пару минут чтобы посмотреть, что предлагает OpenProject.org.ru |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |