|
|
|
Странности с RUN/! с ключем /N c командой DEL/ERASE
|
|||
|---|---|---|---|
|
#18+
Привет! Возможно это очередное "открытие америки через форточку", но столкнулся с такой непоняткой: Код: plaintext Код: plaintext Код: plaintext Код: plaintext 1. Код: plaintext 1. И самое интересное, что даже прямая подача команды (без МП, типа ! /N DEL) в командном окне приводит к такой же ошибке. Это глюк или где? ЗЫ. проблему очистки темпа решил через API WinExec, по найденному на этом форуме примеру. вфп9сп1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 13:18 |
|
||
|
Странности с RUN/! с ключем /N c командой DEL/ERASE
|
|||
|---|---|---|---|
|
#18+
Команды Delete file и Erase есть и в фоксе. Для чего эти пляски с бубном? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 13:24 |
|
||
|
Странности с RUN/! с ключем /N c командой DEL/ERASE
|
|||
|---|---|---|---|
|
#18+
CTAC-KOПривет! Возможно это очередное "открытие америки через форточку", но столкнулся с такой непоняткой: Код: plaintext Америку в форточках ты будешь открывать когда это заработает. SYS(2023) - это TEMP текущей пользовательской сессии, т.е. всех запущенных программ. Представь ситуацию - какая-нибудь прога создала временный файл, закрыла, после отработал твой чудокод, похерил этот файл, а та прога хочет обратно файл прочитать ... Там же фоксового рантайма временные файлы живут. Не знаю как в VFP, а если у запущенного FPD поудалять *.tmp то он после этого почти сразу вылетает. Я нахожу уже имеющуюся подпапку (одноименную с EXE) и делаю ее рабочей. Только пути до файлов проекта надо полностью прописывать в CONFIG.FPW Чтобы две копии проги не работали в одной папке - создаю файл work.flg и держу открытым пока прога работает. Остальное из кода понятно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. delete File (addbs(lcDir) + '*.*') удаляет до первого открытого файла, потому и TRY. Если под шаблон попало 10 файлов, из них 3-й оказался открыт, то в итоге будут удалены первые два, остальные останутся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 15:27 |
|
||
|
Странности с RUN/! с ключем /N c командой DEL/ERASE
|
|||
|---|---|---|---|
|
#18+
Ребято! Не накидуйтесь на меня с решением данной задачи, т.е. очистки темпораря. Это не ответ по сути проблемы. Я ж не зря в ПСах написал, что задачу решил... Все же не удержусь и для всех, кто попытается еще раз мне написать про ущербность данного решения объясняю - есть другая прога на фоксе, усиленно кидающая в темпы результаты SQL-выборок, которые я не имею представления КАК названы во время рантайма и фоксой не убиваются при выходе. Из-за них и прочих прог, работающих в схожем режиме, а так же из-за вариантов, когда открытый темп-файл удалять НЕЛЬЗЯ после создания (к примеру дока для офиса, открытая юзеру в темпе из бд для просмотра/печати) - я останусь при своем "чудокоде"!!! Тема не раскрыта и вопрос остается в силе - ПОЧЕМУ с /N не работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 15:53 |
|
||
|
Странности с RUN/! с ключем /N c командой DEL/ERASE
|
|||
|---|---|---|---|
|
#18+
CTAC-KOя останусь при своем "чудокоде"!!! Тема не раскрыта и вопрос остается в силе - ПОЧЕМУ с /N не работает? Я RUN давно уже не пользую. Из-за его ограничений по длине строки (может с этим у тебя связано), черного окна, необходимости макроподстановок, иногда надо поделать в коде что-то еще пока запущенная прога трудится или не дожидаться/убить ее если она в заданное время не уложилась. Тут я исходник класса-обертки давал. В простейшем случае использовать так: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 16:15 |
|
||
|
Странности с RUN/! с ключем /N c командой DEL/ERASE
|
|||
|---|---|---|---|
|
#18+
CTAC-KOя останусь при своем "чудокоде"!!! Тема не раскрыта и вопрос остается в силе - ПОЧЕМУ с /N не работает? VFP9 Help/N Specifies NOWAIT. Include /N to execute another Windows-based application. Т.е. без /N запускается консоль (дос-эмулятор cmd.exe, отсюда и черное окно) и ей передается команда, а с /N сразу приложение, т.е. скорее всего вызывается WinAPI функция CreateProcess(). DEL - внутренняя команда CMD.EXE, DEL.EXE не существует, о чем тебе фокс и говорит. Поэтому с /N надо запускать CMD.EXE явно Так должно работать: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 16:29 |
|
||
|
Странности с RUN/! с ключем /N c командой DEL/ERASE
|
|||
|---|---|---|---|
|
#18+
Забыл добавить (и поправить) - пути всегда в двойные кавычки бери в командной строке, а то если имя попадется с пробелом - не сработает или не так как надо сработает. Окончательный вариант: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 16:33 |
|
||
|
Странности с RUN/! с ключем /N c командой DEL/ERASE
|
|||
|---|---|---|---|
|
#18+
Dima Tбез /N запускается консоль (дос-эмулятор cmd.exe, отсюда и черное окно) и ей передается команда, а с /N сразу приложение, т.е. скорее всего вызывается WinAPI функция CreateProcess(). DEL - внутренняя команда CMD.EXE, DEL.EXE не существует, о чем тебе фокс и говорит. Поэтому с /N надо запускать CMD.EXE явно Вот! Спасибо! Вот наконец-то реальный ответ на мой вопрос, теперь мне все понятно. Потому и хелповый пример с /N работал, т.к. такой ЕХЕ-шнег (CHARMAP.ЕХЕ) в отдельности существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 20:11 |
|
||
|
Странности с RUN/! с ключем /N c командой DEL/ERASE
|
|||
|---|---|---|---|
|
#18+
CTAC-KOВот наконец-то реальный ответ на мой вопрос, теперь мне все понятно. Только папку TEMP все равно чистить нехорошо целиком. Сделай хотя бы шаблон *.dbf, *.cdx вместо *.* ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 20:45 |
|
||
|
Странности с RUN/! с ключем /N c командой DEL/ERASE
|
|||
|---|---|---|---|
|
#18+
CTAC-KO...есть другая прога на фоксе, усиленно кидающая в темпы результаты SQL-выборок, которые я не имею представления КАК названы во время рантайма и фоксой не убиваются при выходе...и сии филезы рождаюццо с экстеншнами отнюдь не dbf/cdx/idx, не говоря о доках, которые могут создаваться и вовсе без расширения... Самое плачевное в том, что та самая прога, плодящая массу темпов от SQL-выборок так засирает системные диски на некоторых очень неновых машинах, что моя прога там уже падала из-за отсутствия свободного места! Это еще что: вот ежели в таких условиях ХРю ресетнуть (ибо по указанной причине входит оная в жуткий ступор, отчего рукочесание к ресету и приводит) - то смерть ей, окаянной, на месте! Не загрузиццо она боле, ибо не сможет создавать необходимые ей во время загрузки файлы - места-то нету - на сии грабли уж больно наступил однажды !!! Поэтому буду нещадно рубать все что там, в темпорарях, только есть!!! А кто не застолбил свое - путь падает! фпд-проги там не юзают, а все остальные "умные Маши" необходимые темпфайлы удалять и так не дают, ибо открыты они. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 00:41 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=160&tid=1587793]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 315ms |

| 0 / 0 |
