powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Архиватор zip и копирование
12 сообщений из 12, страница 1 из 1
Архиватор zip и копирование
    #36689190
mashenka12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня

пакую таблички и все получается , формируется архив в виде

13061234.zip ложу в одно место и забираю с другого
вот процесс забрать не получается, тоже копирование пишу маску ????????.zip но хватаются другие архивы . Подскажите как можно победить эту странность ??
...
Рейтинг: 0 / 0
Архиватор zip и копирование
    #36689264
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mashenka12Всем доброго дня

пакую таблички и все получается , формируется архив в виде

13061234.zip ложу в одно место и забираю с другого
вот процесс забрать не получается, тоже копирование пишу маску ????????.zip но хватаются другие архивы . Подскажите как можно победить эту странность ??
Пока будешь ложить, все будет неверно.
Надо класть, а не ложить.
А если по сути, то хватает любой восьмибуквенный архив. Нужно ужесточить требование к маске и к папке, откуда выхватывается файл.
...
Рейтинг: 0 / 0
Архиватор zip и копирование
    #36689289
mashenka12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ужесточить сложно так как

13061234.zip

где 13 число
06 - месяц
12 - время в часах
34 время в минутах
...
Рейтинг: 0 / 0
Архиватор zip и копирование
    #36689328
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mashenka12Ужесточить сложно так как
13061234.zip
где 13 число
06 - месяц
12 - время в часах
34 время в минутах
Ну вот, это уже немало.
Ведь мы должны знать, какие из этих символов точно должны быть.
Например, месяц и число.
Тогда маска будет 1306????.zip
Далее мы должны отобрать через ADIR() и маску те архивы, что подходят, и визуально выбрать что надо.

Или пишите подробнее, что происходит. Возможно, необходим другой подход.
...
Рейтинг: 0 / 0
Архиватор zip и копирование
    #36689359
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mashenka12,

Можно через поиск соответствия имени ZIP-файла и даты/времени его создания (если имена "прочих" архивов не соответствуют указанному Вами правилу именования) либо банальный лог-файл формируемых архивов
...
Рейтинг: 0 / 0
Архиватор zip и копирование
    #36689473
mashenka12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет в данном случае

вот эти 8 символов нужны все

делаю копирование вот так -

LOCAL lcFrom as String, lcTo as String, lcMask as String

p="d:\Po\ArchOut\"
p1="d:\Po\ArchIn\"

*lcMask=INPUTBOX('Введите маску для файлов','Маска файлов','*.*')
lcMask='????????.zip'
IF EMPTY(lcMask)
RETURN
ENDIF
*lcFrom=GETDIR('C:\Fist\','Исходное местоположение','Выбор папки',1)
lcFrom=p
IF EMPTY(lcFrom)
RETURN
ENDIF
*lcTo=GETDIR(lcFrom,'Новое местоположение','Выбор папки',65)
lcTo=p1
IF EMPTY(lcFrom)
RETURN
ENDIF
IF lcFrom==lcTo
=MESSAGEBOX('Новое местоположение совпадает с исходным.',48)
RETURN
ENDIF
IF !CopyFiles(lcFrom, lcTo, lcMask)
=MESSAGEBOX('Копирование файлов было отменено или произошла ошибка.',48)
ENDIF
***********************************************
************************************************
FUNCTION CopyFiles
LPARAMETERS tcFrom as String,;
tcTo as String,;
tcMask as String

#define FO_COPY 0x0002
#define FOF_NOCONFIRMATION 0x0010 && Don't prompt the user.
#define FOF_FILESONLY 0x0080 && on *.*, do only files
#define FOF_NOERRORUI 0x0400 && don't put up error UI
#define FOF_NOCOPYSECURITYATTRIBS 0x0800 && dont copy NT file Security Attributes

LOCAL lcSHFO as String
LOCAL lnHeap as Integer
LOCAL lcpFrom as String, lcpTo as String
LOCAL lnpFrom as Integer, lnpTo as Integer
LOCAL lnFlags as Integer
LOCAL i as Integer
LOCAL llReturn

DECLARE INTEGER SHFileOperation IN shell32.dll string @
DECLARE INTEGER GetProcessHeap IN WIN32API
DECLARE INTEGER HeapAlloc IN WIN32API;
INTEGER hHeap, INTEGER dwFlags, INTEGER dwBytes
DECLARE INTEGER HeapFree IN WIN32API;
INTEGER hHeap, INTEGER dwFlags, INTEGER lpMem
DECLARE RtlMoveMemory IN WIN32API;
INTEGER nDestBuffer, STRING @pVoidSource, INTEGER nLength

lnHeap=GetProcessHeap()
lcSHFO=int2bin(_screen.hwnd)
lcSHFO=lcSHFO+int2bin(FO_COPY)
lcpFrom=ADDBS(tcFrom)+tcMask+CHR(0)+CHR(0)
lcpTo=+ALLTRIM(tcTo)+CHR(0)+CHR(0)
lnpFrom=HeapAlloc(lnHeap,0,LEN(lcpFrom))
lnpTo=HeapAlloc(lnHeap,0,LEN(lcpTo))
=RtlMoveMemory(lnpFrom,@lcpFrom,len(lcpFrom))
=RtlMoveMemory(lnpTo,@lcpTo,len(lcpTo))
lcSHFO=lcSHFO+int2bin(lnpFrom)+int2bin(lnpTo)
lnFlags=FOF_NOCONFIRMATION+FOF_FILESONLY+FOF_NOCOPYSECURITYATTRIBS
lcSHFO=lcSHFO+int2bin(lnFlags)+REPLICATE(CHR(0),12)
llReturn=IIF(SHFileOperation(@lcSHFO)=0,.T.,.F.)
= HeapFree(lnHeap,0,lnpFrom)
= HeapFree(lnHeap,0,lnpTo)
CLEAR DLLS
RETURN llReturn
ENDFUNC

***********************************************
FUNCTION int2bin
LPARAMETERS tnValue as Integer
LOCAL lcReturn as String, lnValue as String, i as Integer
lcReturn=''
FOR i=3 TO 0 step -1
lnValue=INT(tnValue/256^i)
lcReturn=chr(lnValue)+lcReturn
tnValue=tnValue-lnValue*256^i
ENDFOR
RETURN lcReturn
ENDFUNC



Вот собственно, а как задать правильную маску, а может есть другие методы копирования ?
...
Рейтинг: 0 / 0
Архиватор zip и копирование
    #36689616
mashenka12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
при этом сложно заранее сказать с каким временем сформируются архивы
...
Рейтинг: 0 / 0
Архиватор zip и копирование
    #36690310
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что мешает при архивации задать имя файлу исходя из даты и времени,
а потом зная это имя его уже копировать?
...
Рейтинг: 0 / 0
Архиватор zip и копирование
    #36692491
mashenka12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да нет проблемка гораздо хуже...

я могу из одного проекта подсети задать время и дату и скопировать в нужное место
но в другой подсети стоит таже программка которая копирует из нужного места1 в нужное место2
при этом в нужном месте 2 не только мои файлы находятся

а между ними стоит маршрутизатор по переброске файлов любых


вот в чем беда то у меня, т.е мне нужно только свои архивы тащить а не прихватывать еще кучу чужих
...
Рейтинг: 0 / 0
Архиватор zip и копирование
    #36692699
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mashenka12,
Т.е., между именем файла и временем его создания (даже в пределах минуты) нет однозначного соответствия? Тогда зачем столь строгие правила его именования? Если бы довелось столкнуться с подобной ситуацией, я бы, не мудрствуя лукаво, просто изменил порядок "именования" архивов: либо использовал другое расширение (не .ZIP), либо 2-значные фрагменты, соответствующие дню-месяцу-часу можно заменить на 1-символьные (оставить только минуты) 1 например, соответствовала бы "A",2-"B" и т.д. Освободится 3 "знакоместа" для уникального префикса.
...
Рейтинг: 0 / 0
Архиватор zip и копирование
    #36692833
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mashenka12мне нужно только свои архивы тащить а не прихватывать еще кучу чужих
как я понял для распознавания имени маски недостаточно.
Тогда напиши функцию распознавания свой-чужой, например IsMyArhiv() возвращает .T. если архив нужный, а дальше примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
lcPathFrom = 'd:\Po\ArchIn\'
lcPAthOut = 'd:\Po\ArchOut\'
local array laF[ 2 ]
for i =  1  to adir(laF, lcPathFrom + '*.zip')
   if IsMyArhiv(laF[i,  1 ])
      copy file (lcPathFrom + laF[i,  1 ]) to (lcPathTo + laF[i,  1 ])
   endif
endfor
...
Рейтинг: 0 / 0
Архиватор zip и копирование
    #36692921
mashenka12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за подкинутую идею, все сделала...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Архиватор zip и копирование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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