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

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

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

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

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

13061234.zip

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

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

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

вот эти 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
16.06.2010, 12:11
    #36689616
mashenka12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Архиватор zip и копирование
при этом сложно заранее сказать с каким временем сформируются архивы
...
Рейтинг: 0 / 0
16.06.2010, 15:32
    #36690310
Jura.K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Архиватор zip и копирование
А что мешает при архивации задать имя файлу исходя из даты и времени,
а потом зная это имя его уже копировать?
...
Рейтинг: 0 / 0
17.06.2010, 14:52
    #36692491
mashenka12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Архиватор zip и копирование
Да нет проблемка гораздо хуже...

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

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


вот в чем беда то у меня, т.е мне нужно только свои архивы тащить а не прихватывать еще кучу чужих
...
Рейтинг: 0 / 0
17.06.2010, 15:52
    #36692699
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Архиватор zip и копирование
mashenka12,
Т.е., между именем файла и временем его создания (даже в пределах минуты) нет однозначного соответствия? Тогда зачем столь строгие правила его именования? Если бы довелось столкнуться с подобной ситуацией, я бы, не мудрствуя лукаво, просто изменил порядок "именования" архивов: либо использовал другое расширение (не .ZIP), либо 2-значные фрагменты, соответствующие дню-месяцу-часу можно заменить на 1-символьные (оставить только минуты) 1 например, соответствовала бы "A",2-"B" и т.д. Освободится 3 "знакоместа" для уникального префикса.
...
Рейтинг: 0 / 0
17.06.2010, 16:20
    #36692833
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Архиватор zip и копирование
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
17.06.2010, 16:37
    #36692921
mashenka12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Архиватор zip и копирование
Спасибо за подкинутую идею, все сделала...
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Архиватор zip и копирование / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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