|
Архиватор zip и копирование
|
|||
---|---|---|---|
#18+
Всем доброго дня пакую таблички и все получается , формируется архив в виде 13061234.zip ложу в одно место и забираю с другого вот процесс забрать не получается, тоже копирование пишу маску ????????.zip но хватаются другие архивы . Подскажите как можно победить эту странность ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 09:40 |
|
Архиватор zip и копирование
|
|||
---|---|---|---|
#18+
mashenka12Всем доброго дня пакую таблички и все получается , формируется архив в виде 13061234.zip ложу в одно место и забираю с другого вот процесс забрать не получается, тоже копирование пишу маску ????????.zip но хватаются другие архивы . Подскажите как можно победить эту странность ?? Пока будешь ложить, все будет неверно. Надо класть, а не ложить. А если по сути, то хватает любой восьмибуквенный архив. Нужно ужесточить требование к маске и к папке, откуда выхватывается файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 10:07 |
|
Архиватор zip и копирование
|
|||
---|---|---|---|
#18+
Ужесточить сложно так как 13061234.zip где 13 число 06 - месяц 12 - время в часах 34 время в минутах ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 10:22 |
|
Архиватор zip и копирование
|
|||
---|---|---|---|
#18+
mashenka12Ужесточить сложно так как 13061234.zip где 13 число 06 - месяц 12 - время в часах 34 время в минутах Ну вот, это уже немало. Ведь мы должны знать, какие из этих символов точно должны быть. Например, месяц и число. Тогда маска будет 1306????.zip Далее мы должны отобрать через ADIR() и маску те архивы, что подходят, и визуально выбрать что надо. Или пишите подробнее, что происходит. Возможно, необходим другой подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 10:34 |
|
Архиватор zip и копирование
|
|||
---|---|---|---|
#18+
mashenka12, Можно через поиск соответствия имени ZIP-файла и даты/времени его создания (если имена "прочих" архивов не соответствуют указанному Вами правилу именования) либо банальный лог-файл формируемых архивов ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 10:40 |
|
Архиватор zip и копирование
|
|||
---|---|---|---|
#18+
нет в данном случае вот эти 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 Вот собственно, а как задать правильную маску, а может есть другие методы копирования ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 11:24 |
|
Архиватор zip и копирование
|
|||
---|---|---|---|
#18+
при этом сложно заранее сказать с каким временем сформируются архивы ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 12:11 |
|
Архиватор zip и копирование
|
|||
---|---|---|---|
#18+
А что мешает при архивации задать имя файлу исходя из даты и времени, а потом зная это имя его уже копировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 15:32 |
|
Архиватор zip и копирование
|
|||
---|---|---|---|
#18+
Да нет проблемка гораздо хуже... я могу из одного проекта подсети задать время и дату и скопировать в нужное место но в другой подсети стоит таже программка которая копирует из нужного места1 в нужное место2 при этом в нужном месте 2 не только мои файлы находятся а между ними стоит маршрутизатор по переброске файлов любых вот в чем беда то у меня, т.е мне нужно только свои архивы тащить а не прихватывать еще кучу чужих ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2010, 14:52 |
|
Архиватор zip и копирование
|
|||
---|---|---|---|
#18+
mashenka12, Т.е., между именем файла и временем его создания (даже в пределах минуты) нет однозначного соответствия? Тогда зачем столь строгие правила его именования? Если бы довелось столкнуться с подобной ситуацией, я бы, не мудрствуя лукаво, просто изменил порядок "именования" архивов: либо использовал другое расширение (не .ZIP), либо 2-значные фрагменты, соответствующие дню-месяцу-часу можно заменить на 1-символьные (оставить только минуты) 1 например, соответствовала бы "A",2-"B" и т.д. Освободится 3 "знакоместа" для уникального префикса. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2010, 15:52 |
|
Архиватор zip и копирование
|
|||
---|---|---|---|
#18+
mashenka12мне нужно только свои архивы тащить а не прихватывать еще кучу чужих как я понял для распознавания имени маски недостаточно. Тогда напиши функцию распознавания свой-чужой, например IsMyArhiv() возвращает .T. если архив нужный, а дальше примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2010, 16:20 |
|
|
start [/forum/topic.php?fid=41&msg=36689289&tid=1585178]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
90ms |
get topic data: |
16ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 205ms |
0 / 0 |