:: Visual Foxpro, Foxpro for DOS
Текущая папка при работе через терминал
lili
Автор

Сообщений: 436
Откуда: Сыктывкар
Дата регистрации: 07.11.2005
Приветствую всех!
Ситуация такая - exe-шник приложения, настроечный файл, шаблоны и т.д. лежат в одной директории. Приложение запускается с ярлыка, где прописана эта рабочая директория. В программе доступ к настроечному файлу, шаблонам документов и т.д. определяется как sys(5)+sys(2003). Много лет все это чудно работало, пока не перешли на работу в терминальном режиме. Там на web-столе в иконке не определяется так называемая рабочая папка (вернее, sys(5)+sys(2003) дает c:\windows\system). В итоге ничего не находится и приложение не работает. Какими средствами я теперь могу в приложении определить, из какой директории оно было запущено?
Ratings: 0 negative/0 positive
Re: Текущая папка при работе через терминал
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Обычно в таком случае определяют не "из какой директории оно запущено" (т.к. это очевидно - из c:\windows\system оно и запущено ) а "в какой директории находится exe программы". Для чего можно банальный JUSTPATH(SYS(16)) использовать... проверив что таки "exe" запущено, а не просто стартовый prg из IDE фокса.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Текущая папка при работе через терминал
Vedmak

Сообщений: 5973
Откуда: CiTY
Дата регистрации: 30.10.2003
Sys(16...


------------------
Говорить стоит лишь для тех, кто слушает.
Ratings: 0 negative/0 positive
Re: Текущая папка при работе через терминал
b_i_f_2006

Сообщений: 14
Дата регистрации: 19.01.2006
*!* Я все основные пути обозначаю еще при загрузке программы. Работает безотказно более 20 лет.
*!* В начале запускающего файла проекта (у меня "BI_APP.PRG" - выделена жирным) вставляю следующие коды:
*************************
PUBLIC PUTFUL,PUTFORMS,PUTDATA,PUTPROGS,PUTGRAPHICS,PUTGEN_FRX9,PUTTF,PUT
PUTFORMS=""
PUTDATA=""
PUTFUL=""
PUTPROGS=""
PUTGEN_FRX9=""
PUT=""
&&************************* && Распознавание основной директории через EXE-файл программы
LOCAL lcSYS16,lcPROGRAM9
lcSYS16 = SYS(16)
lcPROGRAM9 = SUBSTR(lcSYS16, AT(":", lcSYS16) - 1)
PUTFUL=(LEFT(lcPROGRAM9, RAT("", lcPROGRAM9)))
*************************
PUTFORMS=PUTFUL+"FORMS"
PUTPROGS=PUTFUL+"PROGS"
PUTDATA=PUTFUL+"DATA" && Папка с базами данных
PUTGEN_FRX9=PUTFUL+"GEN_FRX9"
PUTGRAPHICS=PUTFUL+"GRAPHICS"
PUTTF = PUTFUL+"TF" && Папка для файлов, созданных программой
************************
Ratings: 0 negative/0 positive
Re: Текущая папка при работе через терминал
b_i_f_2006

Сообщений: 14
Дата регистрации: 19.01.2006
&&Обратные наклонные линии куда-то исчезли. Правильно так:
*************************
PUBLIC PUTFUL,PUTFORMS,PUTDATA,PUTPROGS,PUTGRAPHICS,PUTGEN_FRX9,PUTTF,PUT
PUTFORMS=‘‘
PUTDATA=‘‘
PUTFUL=‘‘
PUTPROGS=‘‘
PUTGEN_FRX9=‘‘
PUT=‘‘
&&************************* && Распознавание основной директории через EXE-файл программы
LOCAL lcSYS16,lcPROGRAM9
lcSYS16 = SYS(16)
lcPROGRAM9 = SUBSTR(lcSYS16, AT(‘:’, lcSYS16) - 1)
PUTFUL=(LEFT(lcPROGRAM9, RAT(‘\’, lcPROGRAM9)))
*************************
PUTFORMS=PUTFUL+’FORMS\’
PUTPROGS=PUTFUL+’PROGS\’
PUTDATA=PUTFUL+’DATA\’ && Папка с базами данных
PUTGEN_FRX9=PUTFUL+’GEN_FRX9\’
PUTGRAPHICS=PUTFUL+’GRAPHICS\’
PUTTF = PUTFUL+’TF\’ && Папка для файлов, созданных программой
************************
Ratings: 0 negative/0 positive
Re: Текущая папка при работе через терминал
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005




Исправлено 6 раз(а). Последнее : Ydin, 25.09.17 15:30
Ratings: 0 negative/0 positive
Re: Текущая папка при работе через терминал
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
b_i_f_2006
Как видите, с этим кодом конкуренция у вас серьезная ...
Ratings: 0 negative/0 positive
Re: Текущая папка при работе через терминал
lili
Автор

Сообщений: 436
Откуда: Сыктывкар
Дата регистрации: 07.11.2005
Всем спасибо, sys(16) - то, что нужно!
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 36 (Гостей: 36)

© 2000-2024 Fox Club 
Яндекс.Метрика