Выберите нужную папку, адрес которой должен быть указан в верхнем окне и нажмите "компрессировать" для сжатия папки, или "распаковать" для разархивирования, также в папке создаётся файл "GUNZIP", который поможет вашим друзьям, если они не скачали этот утилит, разархивировать папку)))
When the transmission and storage of large files is required monogo time to download, storage space, so I suggest such a utilities: Takeout v1.
Select the desired folder, whose address should be listed in the top box and click "compress" to compress the folder, or "unzip" to unpack, and in the folder created "gunzip" file, which will help your friends if they have not downloaded this utility, unzip folder)))
Code: Select all
/*
Архиватор v1.2
Archiver v1.2
by MARK99
*/
IF SYSTEM_LANGUAGE$ ()="ru" THEN
gunz1$="распаковать"
gz1$="компрессировать"
ELSE
gunz1$="unzip"
gz1$="compress"
ENDIF
a1=SCREEN_WIDTH() 'ширина экрана/screen width
a2=SCREEN_HEIGHT() 'высота экрана/screen height
OPTION BASE 1
BUTTON "gunz" TEXT gunz1$ AT a1-(a1-a2)/3*2,0 SIZE (a1-a2)/3*2,44 ' кнопка распаковки ф./unpacking button f.
BUTTON "gz" TEXT gz1$ AT a1-(a1-a2)/3*2,44 SIZE (a1-a2)/3*2,44 'кнопка компрессии ф./Compression button f.
DIR "/" LIST DIRS A$, B
FIELD "pole" TEXT "/"&A$(1) AT 0,0 SIZE a2,44' поле ввода/entry field
LIST "spisok" TEXT A$ AT 0,50 SIZE a2,a2-50' лист с папками/folders list
locl$="" 'адрес файла/address file
adres$="" 'конечный адрес/final address
1
IF LIST_SELECTED ("spisok")>0 THEN
locl$=locl$&"/"&a$(LIST_SELECTED ("spisok")) 'присваения адреса/address assignment
LIST "spisok" SELECT -1
DIR locl$ LIST DIRS A$, B
LIST "spisok" TEXT A$ AT 0,50 SIZE a2,a2-50' лист с папками/folders list
FIELD "pole" TEXT locl$ AT 0,0 SIZE a2,44' поле ввода/entry field
ENDIF
IF BUTTON_PRESSED ("gunz")=1 THEN' распаковка/unzip
adres$=FIELD_TEXT$ ("pole")
adres1$=adreS$
zip=0
GOTO LOOP
ENDIF
IF BUTTON_PRESSED ("gz")=1 THEN'сжатие/compress
adres$=FIELD_TEXT$ ("pole")
adres1$=adreS$
zip=1
FILE adres$&"/GUNZIP" PRINT
GOTO LOOP
ENDIF
GOTO 1
LOOP:
DIR adres1$ LIST DIRS papK$, papki 'папки/folders
DIR adres1$ LIST FILES fil$, FILL 'файлы/files
IF FILL>0 THEN
FOR k=1 TO FILL
IF zip=1 THEN
IF (INSTR (fil$(k), ".zip")<0) AND (INSTR (fil$(k), ".")>0) THEN 'сжатие или распаковка файлов/compression and decompression of files
pastfil$=adres1$&"/"&fil$(k)
newfil$=adres1$&"/"&fil$(k)&".zip"
GZIP pastfil$ TO newfil$
FILE adres1$&"/"&fil$(k) DELETE
pastfil1$=MID$ (pastfil$,LEN (adres$)+2,LEN (pastfil$))
newfil1$=MID$ (newfil$,LEN (adres$)+2,LEN (newfil$))
FILE adres$&"/GUNZIP" WRITELINE "GUNZIP "&""""&newfil1$&""""&" TO "&""""&pastfil1$&""""
FILE adres$&"/GUNZIP" WRITELINE "FILE "&""""&newfil1$&""""&" DELETE"
ENDIF
ENDIF
IF zip=0 THEN
IF INSTR (fil$(k), ".zip")>0 THEN
pastfil$=adres1$&"/"&fil$(k)
newfil$=adres1$&"/"&(MID$ (fil$(k), 1, INSTR (fil$(k), ".zip")-1))
GUNZIP pastfil$ TO newfil$
FILE adres1$&"/"&fil$(k) DELETE
ENDIF
ENDIF
NEXT k
ENDIF
IF papki>0 THEN'обход по файлу/bypassing the file
IF pastadres$<>"" THEN
FOR k=1 TO papki-1
IF pastadres$=papk$(k) THEN l=k+1
NEXT k
IF pastadres$=papk$(papki) THEN GOTO 2
IF l>papki THEN GOTO 2
ELSE
l=1
ENDIF
IF papki=1 THEN l=1
adres1$=adres1$&"/"&papk$(l)
ELSE
2
IF adres1$=adreS$ THEN
END
ELSE
pastadres$=REVERSE$ (MID$ (REVERSE$ (adres1$),1,INSTR(REVERSE$ (adres1$),"/")-1))
adres1$=MID$ (adres1$,1, INSTR (adres1$,pastadres$)-2)
ENDIF
ENDIF
GOTO LOOP