More than a set of
Zip and Unzip Components!

ZipTV is a suite of over 37
compression related components!

   
Home
  What's New
Product Info
  Archive Filter
Downloads
Ordering Info
Problem Report
Upgrades
Contact Us
Home- | -What's New- | -Product Info- -Archive Filter- | -Downloads- | -Ordering Info- | -Upgrade- | -Contact

The following screen shot is of an archive containing filenames and their corresponding subdirectories. The image was captured using the [ziptv install directory]\demos\maindemo.dpr demo application project.

Refer to the field in the image containing the wildcard chars "*.*". The value of this field is assigned to ZipTV's FileSpec property. The "*.*" is known to Windows as wildcard characters, and is used as a filter a specific range of filenames from a list.

ZipTV's FileSpec property has been upgraded with an advanced, yet flexible and easy to use method to filter specific files stored within an archive. It is important to note that the new functionality is based on three separate properties: FileSpec (file(s) to include), ExcludeSpec (file(s) to exclude), and RecurseDirs (boolean property).

The following examples apply to the same archive, but alters the values of the FileSpec and RecurseDirs properties. The ExcludeSpec property is empty. Even though not included in the following examples, the common question-mark wildcards are also supported as a replacement of a specific character postion.

1. [component].FileSpec.Clear();
[component].FileSpec.Add('*.*'); <==
[component].RecurseDirs := False; <==

Files returned:
x.txt

 

2. [component].FileSpec.Clear();
[component].FileSpec.Add('*.*'); <==
[component].RecurseDirs := True; <==

Files returned:
All files in the archive (above screen-shot)

 

3. [component].FileSpec.Clear();
[component].FileSpec.Add'(b*\*.*'); <==
[component].RecurseDirs := False; <==

Files returned:
ARM Phase Controller_A\Blinky\Abstract.txt
ARM Phase Controller_A\Blinky\Blinky.ini
ARM Phase Controller_A\Blinky\Blinky.Uv2
ARM Phase Controller_A\Blinky\LCD.h
ARM Phase Controller_A\Blinky\Retarget.c
ARM Phase Controller_A\Blinky\Serial.c
ARM Phase Controller_A\Blinky\STM32F10xOPT.s

 

4. [component].FileSpec.Clear();
[component].FileSpec.Add'(b*\b*.*'); <==
[component].RecurseDirs := False; <==

Files returned:
ARM Phase Controller_A\Blinky\Blinky.ini
ARM Phase Controller_A\Blinky\Blinky.Uv2

 

5. [component].FileSpec.Clear();
[component].FileSpec.Add'(b*\*.*'); <==
[component].RecurseDirs := True; <==

Files returned:
ARM Phase Controller_A\Blinky\Abstract.txt
ARM Phase Controller_A\Blinky\Blinky.ini
ARM Phase Controller_A\Blinky\Blinky.Uv2
ARM Phase Controller_A\Blinky\LCD.h
ARM Phase Controller_A\Blinky\Retarget.c
ARM Phase Controller_A\Blinky\Serial.c
ARM Phase Controller_A\Blinky\STM32F10xOPT.s
ARM Phase Controller_A\Blinky\Obj\Blinky.axf
ARM Phase Controller_A\Blinky\Obj\blinky.crf
ARM Phase Controller_A\Blinky\Obj\blinky.d
ARM Phase Controller_A\Blinky\Obj\ExtDll.iex
ARM Phase Controller_A\Blinky\Obj\fcard.d
ARM Phase Controller_A\Blinky\Obj\fcard.o
ARM Phase Controller_A\Blinky\Obj\lcd_4bit.d
ARM Phase Controller_A\Blinky\Obj\retarget.d
ARM Phase Controller_A\Blinky\Obj\serial.d
ARM Phase Controller_A\Blinky\Obj\stm32_init.o

 

6. [component].FileSpec.Clear();
[component].FileSpec.Add('b*\*.c'); <==
[component].RecurseDirs := True; <==

Files returned:
ARM Phase Controller_A\Blinky\Retarget.c
ARM Phase Controller_A\Blinky\Serial.c

 

7. [component].FileSpec.Clear(); (same output results as #5)
[component].FileSpec.Add('b*\*.c'); <==
[component].RecurseDirs := False; <==

Files returned:
ARM Phase Controller_A\Blinky\Retarget.c
ARM Phase Controller_A\Blinky\Serial.c