Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа команды COPY FILE, непонятки с параметрами 
V
    Опции темы
Artiom
Дата 15.6.2006, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: 3
Всего: 17



Чтобы скопировать файл пишу
Код

COPY FILE  path1 TO path2

В ответ получаю "не существует файла D:\Foxpro\project\path1" (ищет в директории которая прописана в DEFAULT файл path1 !!!)
path1 - переменная. в которой содержится путь к файлу (пусть D:\dir\file.txt). Если так и написать 
Код

COPY FILE  "D:\dir\file.dbf" TO "D:\dir2\file.dbf"

то все работает
Объясниет пожалуйста что не так.

проверял TYPE(path1) - все нормально, возвращает 'C'
 


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Cashey
Дата 15.6.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 13
Всего: 60



Artiom, привиди код где ты присваеваешь значение переменной path1 


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Artiom
Дата 15.6.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: 3
Всего: 17



Цитата(Cashey @  15.6.2006,  11:35 Найти цитируемый пост)
Artiom, привиди код где ты присваеваешь значение переменной path1 

Код

* вычитываю каталог из базы
IF !USED('options')
    SELECT SELECT(1)
    USE tables\mytable
    SELECT mytable
else
    SELECT mytable
ENDIF 
SEEK 31 ORDER op_id
path_start = op_value

***************
* добавляю имя файла
f_name = "file.dbf"
path1 = ALLTRIM(path_start) + '\' + f_name 

 


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Cashey
Дата 15.6.2006, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 13
Всего: 60



ну а в op_value у тебя что? 


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Artiom
Дата 15.6.2006, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: 3
Всего: 17



Цитата(Cashey @  15.6.2006,  13:14 Найти цитируемый пост)
ну а в op_value у тебя что? 

"D:\dir" 


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Cashey
Дата 15.6.2006, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 13
Всего: 60



короче, пиши так
Код

* вычитываю каталог из базы
IF !USED('options')
    USE tables\mytable
ENDIF 
    SELECT mytable
SEEK 31 ORDER op_id
path_start = op_value
***************
* добавляю имя файла
f_name = "file.dbf"
path1 =ADDBS(ALLTRIM(path_start)) + f_name
********************
*копирование
 COPY FILE  &path1 TO &path2
 


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Artiom
Дата 15.6.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: 3
Всего: 17



В том то и дело что путь формируется правильно
Код

messagebox(path1) && выводит как и надо - D:\dir\file.dbf
COPY FILE  path1 TO path2

выводит нормальный путь а потом ругается на COPY

Добавлено @ 13:28 
Цитата(Cashey @  15.6.2006,  13:22 Найти цитируемый пост)
короче, пиши так

попробую

Добавлено @ 13:32 
работает! спасибо. 


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Cashey
Дата 15.6.2006, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 13
Всего: 60



А еще лучше - отказаться от встроенной возможности FoxPro. Потому, что они не учитывают возможные ошибки при копировании (атребуты файла или наличие файла с таким же именем в каталоге куда копируется файл, нехватка места и т.д.)
Вот как делаю я в таких случаях:
Код

*Объявляю функции из WinAPI
*Смотри как это делается - в будующем может пригодится
 DECLARE SHORT GetLastError IN Win32API  AS GetLError
 
 DECLARE SHORT CopyFile IN Win32API  AS CopyDFile ;
  String cFile, String @cToFile, Integer FlagExist

 DECLARE INTEGER SetFileAttributes IN Win32API as SetFileAttribut ;
 String lpFileName, Integer dwFileAttributes 
**********************************************************
lcProgram=ADDBS(JUSTPATH(FULLPATH(SYS(16,0))))
CD (lcProgram)
*cPathName - имя файла
*Проверяем наличия файла с тем же именем
IF ADIR(laFile2, ALLTRIM(lcProgram + cPathName)+"*.*") > 0
    *Устанавливаем атребуты файла в NORMAL
      SetFileAttribut(lcProgram + cPathName + laFile2[i1,1], 0 )
     *Копируем файл
      m.kw = CopyDFile(lcPath + cPathName + laFile2[i1,1], ;
      lcProgram + cPathName + laFile2[i1,1],0)
      IF EMPTY(m.kw)
        m.err  = GetLError()
        MESSAGEBOX("Ошибка копирования файла"+CHR(13)+ "Код ошибки: "STR(m.err), "Внимание!", 16)
      ENDIF
endif

примерно так, код выдернут из живого проекта, но вроде бы сильной привязки нет - разобратся можно 


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
bux
Дата 4.7.2006, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Чтобы скопировать файл пишу

1: COPY FILE  path1 TO path2

Угу. Счаз.

COPY FILE  (path1) TO (path2) вроде, если память не изменяет.
В случае чего если не так вспомнил  - принимаю заслуженные пинки ногами.

 
PM MAIL   Вверх
Artiom
Дата 5.7.2006, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: 3
Всего: 17



Цитата(bux @  4.7.2006,  22:08 Найти цитируемый пост)
В случае чего если не так вспомнил  - принимаю заслуженные пинки ногами

Пинаю 
из help к VFP8.0
Код

COPY FILE FileName1 TO FileName2
 


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Сергей
Дата 5.7.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 25.6.2006

Репутация: 1
Всего: 1



Цитата

Artiom
Пинаю 
из help к VFP8.0
1:COPY FILE FileName1 TO FileName2


Вот это правильное решение: 
Цитата

Bux
COPY FILE  (path1) TO (path2)


и вот это:
Цитата

Cashey
*копирование
 COPY FILE  &path1 TO &path2

только нужно понять - почему пишется именно так.
Все дело в том, что ты хочешь копировать не сами переменные path1 и path2, а то - что в них содержится
А как Foxу про это знать? Правильно, за счет указания символа  макроподстановка - &. Это в Foxе очень мощный механизм, и по возможности - разберись как с ним работать. С его применением - очень много проблем решается элегантно.
 
PM MAIL   Вверх
Cashey
Дата 7.7.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 13
Всего: 60



Вопрос вроде решенный, чего вы из пустого в порожнее переливаете?
В качестве параметров команды COPY TO используется имя файла, а не его текстовое обозначение, т.е. без кавычек. 


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Foxpro/Clipper/Dbase"
MoLeX

Запрещается!

1. Публиковать ссылки для чисто рекламных целей.

2. Оффтопить, флеймить, говорить не культурно.

Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему.

Задавайте вопросы правильно - как спросите, так вам и ответят.

Разрешено!

Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил.

Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы.

P.S. Размещение рекламы будет строго наказываться!



Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема »


 




[ Время генерации скрипта: 0.0931 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.