:: Visual Foxpro, Foxpro for DOS
Подскажите новичку
nordman

Сообщений: 5
Дата регистрации: 10.01.2019
Всех приветствую, будьте добры помогите новичку советом, я понимаю что это уже много раз везде обсуждалось, есть и справка и гугл но чтото ничего не помогает
Нужно запустить прогу VFP - prg файл из винды передав ей параметр - путь к DBF файлу для совершения с ним действий в проге, а именно нужно передать ей путь к базе данных чтобы прога командой pack его упаковала, но ничего не работает
Прога pack.prg:
LPARAMETRS A1
PACK A1
Запускаю из батника:
c:\prg\pack.prg WITH "C:\\Program Files\\...\\base.dbf"
Прога просто открывается в VFP но база так и остается неупакованной,
если же в самом VFP выполнить DO c:\prg\pack.prg WITH "C:\\Program Files\\...\\base.dbf"
то выскакивает сообщение no PARAMETER statement is found
вроде сделал все как по справке где ошибка не пойму
Ratings: 0 negative/0 positive
Re: Подскажите новичку
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
nordman
Нужно запустить прогу VFP - prg файл из винды передав ей параметр - путь к DBF файлу для совершения с ним действий в проге, а именно нужно передать ей путь к базе данных чтобы прога командой pack его упаковала, но ничего не работает
Прога pack.prg:
LPARAMETRS A1
PACK A1
Запускаю из батника:
c:\prg\pack.prg WITH "C:\\Program Files\\...\\base.dbf"
Вопрос № 1: с какого перепугу в пути стоят задвоенные слеши? С каких пор такой стандарт появился в винде?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Подскажите новичку
AndyNigmatec

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
ну кроме слешей ...

Прога pack.prg:
LPARAMETRS lcFileDbf
IF FILE(lcFileDbf)
TRY
SELECT 0
USE (lcFileDbf) ALIAS cDbf EXCLUSIVE
PACK
USE IN SELECT('cDbf')
CATCH
* сообщение об ошибке если нуна
ENDTRY
ELSE
* сообщение что не найден файл если нуна
ENDIF
...

ну примерно типа того
Ratings: 0 negative/0 positive
Re: Подскажите новичку
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
Вопрос № 2: А открывать таблицу для PACK кто бедет?


------------------
Никогда не откладывайте на завтра, то, о чем можно забыть навсегда
Ratings: 0 negative/0 positive
Re: Подскажите новичку
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
Penner
Вопрос № 2: А открывать таблицу для PACK кто бедет?
Не пойдёть!
PACK [MEMO | DBF] [Tablename ] [IN nWorkarea | cTableAlias]
Parameters
MEMO
Removes unused space from the memo file but does not remove records marked for deletion from the table. Information in memo fields is stored in an associated table memo (.fpt) file, which as the same file name as the table.
DBF
Removes records marked for deletion from the table but doesn't affect the memo file.
Tablename
Specifies the table to pack. Visual FoxPro opens the specified table, then packs, and closes it.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Подскажите новичку
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
Всегда делал вручную


------------------
Никогда не откладывайте на завтра, то, о чем можно забыть навсегда
Ratings: 0 negative/0 positive
Re: Подскажите новичку
Sawradym

Сообщений: 2244
Откуда: Винница
Дата регистрации: 15.05.2007
.


------------------




Исправлено 2 раз(а). Последнее : Sawradym, 10.01.19 15:08
Ratings: 0 negative/0 positive
Re: Подскажите новичку
nordman

Сообщений: 5
Дата регистрации: 10.01.2019
Нету в ней мемо полей, главное обычные записи с пометкой для удаления удалить и все
Ratings: 0 negative/0 positive
Re: Подскажите новичку
nordman

Сообщений: 5
Дата регистрации: 10.01.2019
ssa
Вопрос № 1: с какого перепугу в пути стоят задвоенные слеши? С каких пор такой стандарт появился в винде?
Ни с двойными ни с одинарными не работает
В некоторых других языках в винде двойные слэши применяются, это я по привычке
Ratings: 0 negative/0 positive
Re: Подскажите новичку
nordman

Сообщений: 5
Дата регистрации: 10.01.2019
AndyNigmatec
ну кроме слешей ...
Прога pack.prg:
LPARAMETRS lcFileDbf
IF FILE(lcFileDbf)
TRY
SELECT 0
USE (lcFileDbf) ALIAS cDbf EXCLUSIVE
PACK
USE IN SELECT('cDbf')
CATCH
* сообщение об ошибке если нуна
ENDTRY
ELSE
* сообщение что не найден файл если нуна
ENDIF
...

ну примерно типа того
Вообщем поправил PRG, запускаю тем же батником - не работает ничего
Ratings: 0 negative/0 positive
Re: Подскажите новичку
AndyNigmatec

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
сообщения об ошибках пропишите - и будет видно что именно не работает )))

Хотя в данном тривиально-очевидном случАе - проще тупо отладчиком - делов то на пару сек ...
Ratings: 0 negative/0 positive
Re: Подскажите новичку
Sawradym

Сообщений: 2244
Откуда: Винница
Дата регистрации: 15.05.2007
В батнике должно быть что-то типа:
c:\_Fox_Path_\vfp9 c:\prg\pack.prg "C:\Program Files\...\base.dbf"

и, возможно, последней командой в prg стоит добавить Quit, чтобы закрыть фокс.


------------------




Исправлено 1 раз(а). Последнее : Sawradym, 10.01.19 15:39
Ratings: 0 negative/0 positive
Re: Подскажите новичку
AndyNigmatec

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
LPARAMETERS lcFileDbf
lcFileDbf=IIF(TYPE('lcFileDbf')='C', lcFileDbf, '')
IF !EMPTY(lcFileDbf)
IF FILE(lcFileDbf)
TRY
SELECT 0
USE (lcFileDbf) ALIAS cDbf EXCLUSIVE
PACK
USE IN SELECT('cDbf')
MESSAGEBOX("файл: " + lcFileDbf + " обработан!")
CATCH
AERROR(laInfo)
MESSAGEBOX("Не могу открыть файл:" + CHR(13) + m.laInfo[2])
ENDTRY
USE IN SELECT('cDbf')
ELSE
MESSAGEBOX("Не найден файл: " + lcFileDbf)
ENDIF
ELSE
MESSAGEBOX("Не передана строка-параметр!")
ENDIF

в среде DO ... WITH ...
Ratings: 0 negative/1 positive
Re: Подскажите новичку
nordman

Сообщений: 5
Дата регистрации: 10.01.2019
AndyNigmatec
в среде DO ... WITH ...
А так чтобы из батника?

cmd.bat:
Pack.prg "C:\..\base.dbf" ?
Ratings: 0 negative/0 positive
Re: Подскажите новичку
AndyNigmatec

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
тов. Sawradym уже написал выше )))

вот батник (для примера):

"C:\Program Files\Microsoft Visual FoxPro 9\vfp9.exe" "C:\PRG\program1.prg" "C:\Conc\multiple.dbf"

в самом батничке ессно в 866 кодировке ))))



Исправлено 1 раз(а). Последнее : AndyNigmatec, 10.01.19 16:31
Ratings: 0 negative/0 positive
Re: Подскажите новичку
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
nordman
А так чтобы из батника?
батник не умеет выполнять фоксовые программы из исходника. Создай в vfp простейший exe, и уже его и запускай из батника. И помотри на синтаксис в примерах что тебе написали PACK a1 это упаковать таблицу "a1.dbf" а вовсе не таблицу, путь и имя которой прописаны в переменной a1.


------------------
WBR, Igor
Ratings: 0 negative/0 positive


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

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

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