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

Откуда: Оргриммар
Сообщений: 90
вот процедура копирования из сети
PROCEDURE izarmov

nAnswer = MESSAGEBOX('Копировать информацию с сервера на диск?', 4+256, 'Выход')
IF nAnswer=6 && Да
*-----------------------------------------------------------*
 IF !file ('f:\work\flag') && Проверка подключения к сети
 WAIT 'Нет доступа к сети !' WINDOW TIMEOUT 1
 RETURN 
 ENDIF 
*-----------------------------------------------------------*
WAIT 'Копирование информации с сервера на диск' WINDOW NOWAIT 
USE setup	

 copy file ALLTRIM(setup.pt_serv)+'siskl.dbf'   to siskl.dbf
 copy file ALLTRIM(setup.pt_serv)+'priznak.dbf' to priznak.dbf
 copy file ALLTRIM(setup.pt_serv)+'rsiskl.dbf'  to rsiskl.dbf
 copy file ALLTRIM(setup.pt_serv)+'postav.dbf'  to postav.dbf
 copy file ALLTRIM(setup.pt_serv)+'sistotk.dbf' to sistotk.dbf
 copy file ALLTRIM(setup.pt_serv)+'nakpl1.dbf'  to nakpl1.dbf

WAIT 'Копирование закончено' WINDOW TIMEOUT 0.3
RETURN 	
ENDIF


и нужно сделать "проверку" "цикл" имеет ли право копирования информации или "файл уже кто то копирует"

подскажите куда копать
22 ноя 13, 09:00    [15172072]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
pipos522
copy file ALLTRIM(setup.pt_serv)+'siskl.dbf' to siskl.dbf
copy file ALLTRIM(setup.pt_serv)+'priznak.dbf' to priznak.dbf
copy file ALLTRIM(setup.pt_serv)+'rsiskl.dbf' to rsiskl.dbf
copy file ALLTRIM(setup.pt_serv)+'postav.dbf' to postav.dbf
copy file ALLTRIM(setup.pt_serv)+'sistotk.dbf' to sistotk.dbf
copy file ALLTRIM(setup.pt_serv)+'nakpl1.dbf' to nakpl1.dbf
[/src]
А вот все эти ALLTRIM обязательны? Сделать один раз setup.pt_serv = ALLTRIM(setup.pt_serv) до этих команд религия не позволяет? Или платят за размер кода? Или платят за тормознутость этого кода?
22 ноя 13, 09:07    [15172094]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
pipos522
Member

Откуда: Оргриммар
Сообщений: 90
Sergey Sizov, 3 месяца на фоксе((

не думал что это тормозит программу
22 ноя 13, 09:11    [15172107]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
PaulWist
Member

Откуда:
Сообщений: 2236
Лови ошибку копирования, либо через

TRY
     [ tryCommands ] 
[ CATCH [ TO VarName ] [ WHEN lExpression ] 
     [ catchCommands ] ]
[ THROW [ eUserExpression ] ]
[ EXIT ]
[ FINALLY 
     [ finallyCommands ] ] 
ENDTRY


либо через

ON Error
22 ноя 13, 09:17    [15172126]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
pipos522
Sergey Sizov, 3 месяца на фоксе((

не думал что это тормозит программу
Ну и зря.
22 ноя 13, 09:28    [15172171]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
Dima T
Member

Откуда:
Сообщений: 15281
В случае с путями лучше использовать ADDBS() это ALLTRIM() плюс добавить в конец \ если его нет

Проверку что кто-то копирует невозможно сделать. Точнее это не ошибка, копировать может сколько угодно пользователей одновременно. Ошибка возникает если кто-то файл открыл монопольно или нет прав на доступ к файлу.
Надо перехватывать и обрабатывать ошибки.
22 ноя 13, 09:29    [15172179]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
pipos522
Member

Откуда: Оргриммар
Сообщений: 90
ON ERROR do FREE1 WITH ERROR()





*----------------------*
PROCEDURE FREE

*PARAMETER merror
*
*DO CASE
*CASE merror=108 .or. merror=1705 && Если файл открыт другим пользователем
WAIT 'Информация в сети занята!' WINDOW TIMEOUT 1

запутался что-то я
22 ноя 13, 10:22    [15172416]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
Dima T
Member

Откуда:
Сообщений: 15281
Если фокс 9-й то удобнее TRY ... CATCH
try
 copy file ALLTRIM(setup.pt_serv)+'siskl.dbf'   to siskl.dbf
 copy file ALLTRIM(setup.pt_serv)+'priznak.dbf' to priznak.dbf
 copy file ALLTRIM(setup.pt_serv)+'rsiskl.dbf'  to rsiskl.dbf
 copy file ALLTRIM(setup.pt_serv)+'postav.dbf'  to postav.dbf
 copy file ALLTRIM(setup.pt_serv)+'sistotk.dbf' to sistotk.dbf
 copy file ALLTRIM(setup.pt_serv)+'nakpl1.dbf'  to nakpl1.dbf
catch
 ? 'Ошибка копирования'
endtry
22 ноя 13, 10:25    [15172426]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
pipos522
Member

Откуда: Оргриммар
Сообщений: 90
Sergey Sizov, "Или платят за размер кода?" такое что бывает:-)
22 ноя 13, 10:34    [15172464]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
pipos522
Member

Откуда: Оргриммар
Сообщений: 90
Dima T, спасибо пока остановлюсь на этом варианте


TRY
*-----------------------------------------------------------*
WAIT 'Копирование информации с сервера на диск' WINDOW NOWAIT
USE setup

COPY FILE ALLTRIM(setup.pt_serv)+'siskl.dbf' TO siskl.dbf
COPY FILE ALLTRIM(setup.pt_serv)+'priznak.dbf' TO priznak.dbf
COPY FILE ALLTRIM(setup.pt_serv)+'rsiskl.dbf' TO rsiskl.dbf
COPY FILE ALLTRIM(setup.pt_serv)+'postav.dbf' TO postav.dbf
COPY FILE ALLTRIM(setup.pt_serv)+'sistotk.dbf' TO sistotk.dbf
COPY FILE ALLTRIM(setup.pt_serv)+'nakpl1.dbf' TO nakpl1.dbf

WAIT 'Копирование закончено' WINDOW TIMEOUT 1.3
*-----------------------------------------------------------*
CATCH
WAIT 'Ошибка копирования' WINDOW TIMEOUT 2
ENDTRY
22 ноя 13, 10:41    [15172494]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
pipos522
Member

Откуда: Оргриммар
Сообщений: 90
не по теме немного, в старой досовской проге в коде удаления есть такая штука !del

WAIT'Идет удаление информации за год' WINDOW NOWAIT 
USE setup

a=strtran(substr(str(otg,4),3,2),' ','0')+'??.dbf'

бла....бла.... и 

use itcalcfp
dele all for god=otg
PACK

!del tkf&a


в хелпе такого "синтаксиса" нет, чем мне его заменить в 9м фоксе?
22 ноя 13, 13:04    [15173547]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
pipos522
не по теме немного, в старой досовской проге в коде удаления есть такая штука !del

WAIT'Идет удаление информации за год' WINDOW NOWAIT 
USE setup

a=strtran(substr(str(otg,4),3,2),' ','0')+'??.dbf'

бла....бла.... и 

use itcalcfp
dele all for god=otg
PACK

!del tkf&a


в хелпе такого "синтаксиса" нет, чем мне его заменить в 9м фоксе?
Какого "такого"? Что заменить? Не вижу ничего такого, что не будет делаться и в 9-ке. Хотя это и нафиг не нужно.
WAIT'Идет удаление информации за год' WINDOW NOWAIT 
USE setup

a=strtran(substr(str(otg,4),3,2),' ','0')+'??.dbf'

бла....бла.... и 

use itcalcfp
dele all for god=otg
PACK

delete file (tkf+a)
22 ноя 13, 13:18    [15173677]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
pipos522
Member

Откуда: Оргриммар
Сообщений: 90
Sergey Sizov
Какого "такого"? Что заменить? Не вижу ничего такого, что не будет делаться и в 9-ке. Хотя это и нафиг не нужно.


"Какого "такого"?" !del
"Что заменить?" !del
"и в 9-ке" тоесть использование этой "команды" актуально? и лично вы ей пользуетесь и посей день?
22 ноя 13, 13:31    [15173792]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
pipos522
Sergey Sizov
Какого "такого"? Что заменить? Не вижу ничего такого, что не будет делаться и в 9-ке. Хотя это и нафиг не нужно.


"Какого "такого"?" !del
"Что заменить?" !del
"и в 9-ке" тоесть использование этой "команды" актуально? и лично вы ей пользуетесь и посей день?
Зачем мне ей пользоваться если у меня нет необходимости плодить тучу ненужных файлов? :) Чтобы что-то удалить надо сначала это что-то создать.
Возможную замену я уже написал, не заметили?
22 ноя 13, 13:39    [15173861]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
Dima T
Member

Откуда:
Сообщений: 15281
pipos522
в хелпе такого "синтаксиса" нет, чем мне его заменить в 9м фоксе?

Есть и работает так же как и в досе.
del - команда не фокса а виртуальной дос-машины (cmd.exe)
На что заменить Сергей написал.
22 ноя 13, 13:41    [15173877]     Ответить | Цитировать Сообщить модератору
 Re: Копирование из сети  [new]
pipos522
Member

Откуда: Оргриммар
Сообщений: 90
Sergey Sizov,
заметил и переделал уже спасибо, просто стараюсь разобраться, еще не раз придётся с этим столкнутся
22 ноя 13, 14:00    [15174085]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить