Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Feature not available  [new]
Ex_Soft
Member

Откуда:
Сообщений: 7712
Сто лет не брал в руки шашечек Картинка с другого сайта.
FoxPro 2.6.
m.log_file="log"
if !file(m.log_file+"\nul")
  m.com="!mkdir "+m.log_file
  &com
endif
В IDE - все фунциклирует. Когда же рожаю exe'шник (Build Executeable -> Stand-alone Extended) получаю на
  &com
*.exe

Feature not available

Это так д.б. или я что-то запямятовал?

W2K+SP3 (NTFS) (под админовскими правами)
_________________
"Helo, word!" - 17 errors 56 warnings
29 июн 06, 15:50    [2826528]     Ответить | Цитировать Сообщить модератору
 Re: Feature not available  [new]
Sergey Ch
Member

Откуда: Благовещенск
Сообщений: 8873
Не понятно "\nul" ...
29 июн 06, 16:14    [2826708]     Ответить | Цитировать Сообщить модератору
 Re: Feature not available  [new]
Ex_Soft
Member

Откуда:
Сообщений: 7712
Sergey Ch

Не понятно "\nul" ...

Ууууу... Как все запущено ;) Картинка с другого сайта.

Вспоминаем старую-добрую MS-DOS'ю
1.bat
c:
cd \
if not exist TEST_DIR\nul md TEST_DIR
_________________
"Helo, word!" - 17 errors 56 warnings
29 июн 06, 17:22    [2827298]     Ответить | Цитировать Сообщить модератору
 Re: Feature not available  [new]
Redrik
Member

Откуда:
Сообщений: 808
Не понятно "\nul" ...
29 июн 06, 18:19    [2827618]     Ответить | Цитировать Сообщить модератору
 Re: Feature not available  [new]
Ex_Soft
Member

Откуда:
Сообщений: 7712
Redrik

Не понятно "\nul" ...

no comment...
m.dir="progra~1"
if file(m.dir+"\nul")
  wait "Yes"
else
  wait "No"
endif
Так понятнее?
Да и при чем тут этот nul-файл/устройство?
Ex_Soft

получаю на
  &com

_________________
"Helo, word!" - 17 errors 56 warnings
29 июн 06, 23:24    [2828405]     Ответить | Цитировать Сообщить модератору
 Re: Feature not available  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Не уверен. Но для начала, я бы все-таки отделил восклицательный знак от команды mkdir пробелом.

Опять же, не уверен, но насколько я помню, FPD имел 3 варианта запуска: Standart, Expanded и Lan. Попробуй запускать свой EXE с ключем -X. Это как раз расширеннный режим.

MyProg.exe -X

Хотя, вроде бы выполнение команды RUN от режима не зависит.

И еще, имя директории "log" - это для примера? Не содержит ли реальная директория пробелов в своем имени? Например, что-то вроде "My log" В этом случае, в FPD подобная команда вообще не сработает.
30 июн 06, 00:32    [2828474]     Ответить | Цитировать Сообщить модератору
 Re: Feature not available  [new]
Ex_Soft
Member

Откуда:
Сообщений: 7712
ВладимирМ

отделил восклицательный знак от команды mkdir пробелом

да не - покопавшись в загашнике нашел кучу своих детских ваяний как раз 1:1-му с выше приведенным вариантом. К тому же
Ex_Soft

В IDE - все фунциклирует.

Мало того - не поленился и проверил:
*.fxp - фунциклирует Картинка с другого сайта.
*.app - фунциклирует Картинка с другого сайта.
*.exe (Build Executeable -> Compact) - фунциклирует Картинка с другого сайта.
*.exe (Build Executeable -> Stand-alone) - не фунциклирует Картинка с другого сайта.
*.exe (Build Executeable -> Stand-alone Extended) - не фунциклирует Картинка с другого сайта.
вот я и хочу выяснить - это так надо?

ВладимирМ

Попробуй запускать свой EXE с ключем -X. Это как раз расширеннный режим.

Шо мертвому припарки...

ВладимирМ

И еще, имя директории "log" - это для примера?

Не... Реальный живой кусок из живого проекта...

ВладимирМ

Не содержит ли реальная директория пробелов в своем имени? Например, что-то вроде "My log"

нет

ВладимирМ

В этом случае, в FPD подобная команда вообще не сработает.

ну эт понятно, что нуна приводить к 8.3
_________________
"Helo, word!" - 17 errors 56 warnings
30 июн 06, 09:25    [2828828]     Ответить | Цитировать Сообщить модератору
 Re: Feature not available  [new]
Ex_Soft
Member

Откуда:
Сообщений: 7712
2 Sergey Ch && Redrik
I'm so sorry... Картинка с другого сайта.
Fox'у, действительно плевать на nul Просто когда в дрозофиле, при отсутствующем log, произошел заход в
if !file(m.log_file+"\nul")
я подумал, что все - честно... Но это не суть важно - adir() и вперьод... Загвоздка в &com так и осталась-то... Картинка с другого сайта.
_________________
"Helo, word!" - 17 errors 56 warnings
30 июн 06, 09:47    [2828908]     Ответить | Цитировать Сообщить модератору
 Re: Feature not available  [new]
Redrik
Member

Откуда:
Сообщений: 808
Ex_Soft
Так понятнее?

Не-а... ;-)
В самом первом твоем примере не работает "IF" - он всегда выдает .Т.!
При повторном создании каталога "LOG" получаем: "Расширенная ошибка 183"...
Так что глянь - если запуск без "LOG" нормальный, а с "LOG" вываливается ошибка, то может дело в том, что FILE() не хавает наличия каталогов независимо от "\nul"?
30 июн 06, 09:52    [2828928]     Ответить | Цитировать Сообщить модератору
 Re: Feature not available  [new]
Sergey Ch
Member

Откуда: Благовещенск
Сообщений: 8873
Ex_Soft
*.exe (Build Executeable -> Stand-alone) - не фунциклирует Картинка с другого сайта.
*.exe (Build Executeable -> Stand-alone Extended) - не фунциклирует Картинка с другого сайта.
вот я и хочу выяснить - это так надо?

Да, это общеизвестный bug, который так и не был исправлен в FPD.

Отсюда - рекомендуется compact exe + support libraries...

Good luck!
30 июн 06, 10:26    [2829098]     Ответить | Цитировать Сообщить модератору
 Re: Feature not available  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi Ex_Soft!

Под WinXP и думаю под Win2K не будет работать проверка folder\nul - так что
это прежде всего надо поменять.
Кроме того помнится есть проблемы связанные с макро - фокс не может
определить (из-за макро - нет никакой возможности предсказать в общем случае
что же за команда получится в результате "сборки" строки), что в рантайме
ему понадобится та или иная функциональность, и потому "забывает" включить
соответствующий кусок кода в создаваемый exe. Это обычно касается SQL
запросов, но видимо и с RUN ситуация сходная. В таких случаях где-то в
"недостижимой области кода" (например внутри блока IF .F. ... ENDIF или в
никогда не вызываемой процедуре) прописывают натуральную (без макро)
команду - т.к. этот код всё-же компилируется, то фокс будет знать что нужно
включить соответствующие блоки кода в создаваемый EXE. Так-же может помочь
выделение из макро собственно команды - т.е. не

lcCommand = "RUN mkdir " + m.lcDirName
&lcCommand

а

lcCommand = "mkdir " + m.lcDirName
RUN &lcCommand

Posted via ActualForum NNTP Server 1.3

3 июл 06, 14:17    [2836795]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить