powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Копирование из сети
16 сообщений из 16, страница 1 из 1
Копирование из сети
    #38473758
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот процедура копирования из сети
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
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



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

подскажите куда копать
...
Рейтинг: 0 / 0
Копирование из сети
    #38473760
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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) до этих команд религия не позволяет? Или платят за размер кода? Или платят за тормознутость этого кода?
...
Рейтинг: 0 / 0
Копирование из сети
    #38473765
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov, 3 месяца на фоксе((

не думал что это тормозит программу
...
Рейтинг: 0 / 0
Копирование из сети
    #38473767
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лови ошибку копирования, либо через

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
TRY
     [ tryCommands ] 
[ CATCH [ TO VarName ] [ WHEN lExpression ] 
     [ catchCommands ] ]
[ THROW [ eUserExpression ] ]
[ EXIT ]
[ FINALLY 
     [ finallyCommands ] ] 
ENDTRY



либо через

Код: sql
1.
ON Error
...
Рейтинг: 0 / 0
Копирование из сети
    #38473773
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pipos522Sergey Sizov, 3 месяца на фоксе((

не думал что это тормозит программуНу и зря.
...
Рейтинг: 0 / 0
Копирование из сети
    #38473775
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В случае с путями лучше использовать ADDBS() это ALLTRIM() плюс добавить в конец \ если его нет

Проверку что кто-то копирует невозможно сделать. Точнее это не ошибка, копировать может сколько угодно пользователей одновременно. Ошибка возникает если кто-то файл открыл монопольно или нет прав на доступ к файлу.
Надо перехватывать и обрабатывать ошибки.
...
Рейтинг: 0 / 0
Копирование из сети
    #38473834
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ON ERROR do FREE1 WITH ERROR()





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

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

запутался что-то я
...
Рейтинг: 0 / 0
Копирование из сети
    #38473839
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если фокс 9-й то удобнее TRY ... CATCH
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
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
...
Рейтинг: 0 / 0
Копирование из сети
    #38473846
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov, "Или платят за размер кода?" такое что бывает:-)
...
Рейтинг: 0 / 0
Копирование из сети
    #38473854
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Копирование из сети
    #38474184
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не по теме немного, в старой досовской проге в коде удаления есть такая штука !del

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
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м фоксе?
...
Рейтинг: 0 / 0
Копирование из сети
    #38474226
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pipos522не по теме немного, в старой досовской проге в коде удаления есть такая штука !del

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
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-ке. Хотя это и нафиг не нужно.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
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)
...
Рейтинг: 0 / 0
Копирование из сети
    #38474259
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey SizovКакого "такого"? Что заменить? Не вижу ничего такого, что не будет делаться и в 9-ке. Хотя это и нафиг не нужно.


"Какого "такого"?" !del
"Что заменить?" !del
"и в 9-ке" тоесть использование этой "команды" актуально? и лично вы ей пользуетесь и посей день?
...
Рейтинг: 0 / 0
Копирование из сети
    #38474286
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pipos522Sergey SizovКакого "такого"? Что заменить? Не вижу ничего такого, что не будет делаться и в 9-ке. Хотя это и нафиг не нужно.


"Какого "такого"?" !del
"Что заменить?" !del
"и в 9-ке" тоесть использование этой "команды" актуально? и лично вы ей пользуетесь и посей день?Зачем мне ей пользоваться если у меня нет необходимости плодить тучу ненужных файлов? :) Чтобы что-то удалить надо сначала это что-то создать.
Возможную замену я уже написал, не заметили?
...
Рейтинг: 0 / 0
Копирование из сети
    #38474292
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pipos522в хелпе такого "синтаксиса" нет, чем мне его заменить в 9м фоксе?
Есть и работает так же как и в досе.
del - команда не фокса а виртуальной дос-машины (cmd.exe)
На что заменить Сергей написал.
...
Рейтинг: 0 / 0
Копирование из сети
    #38474339
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,
заметил и переделал уже спасибо, просто стараюсь разобраться, еще не раз придётся с этим столкнутся
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Копирование из сети
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]