64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #include "arclib.h"
 | |
| #if !defined( AL_IBM )
 | |
| #pragma hdrstop
 | |
| #endif
 | |
| 
 | |
| #include <stdlib.h>
 | |
| #include <stdio.h>
 | |
| #include "alsimple.h"
 | |
| 
 | |
| void my_callback( const char AL_DLL_FAR *name,
 | |
|                   int object_ratio,
 | |
|                   int job_ratio )
 | |
| {
 | |
|     if ( name )
 | |
|         cout << "\n" << name << "  ";
 | |
|     if ( object_ratio >= 0 ) {
 | |
|         char buf[ 24 ];
 | |
|         sprintf( buf, "%d%%  %d%%", object_ratio, job_ratio );
 | |
|         cout << "          \b\b\b\b\b\b\b\b\b\b" << buf;
 | |
|         for ( int i = 0 ; i < (int) strlen( buf ) ; i++ )
 | |
|             cout << '\b';
 | |
|     }
 | |
| }
 | |
| 
 | |
| int ratio( struct ALZipDir *z )
 | |
| {
 | |
|     return int( 100L - ( ( 100L * z->compressed_size ) / (long) z->size ) );
 | |
| }
 | |
| 
 | |
| main()
 | |
| {
 | |
|     int i;
 | |
|     int count;
 | |
|     int error;
 | |
|     struct ALZipDir *z;
 | |
|     char *levels[] = { "Stored ",
 | |
|                        "DeflatN",
 | |
|                        "DeflatX",
 | |
|                        "DeflatF",
 | |
|                        "DeflatS" };
 | |
|     i = ALCreate( "libs.zip", "*.bak, build.*", 0, my_callback );
 | |
|     printf( "\nALCreate() returned %d\n", i );
 | |
|     z = ALReadDir( "libs.zip", &count, &error );
 | |
|     if ( z != 0 && error == AL_SUCCESS )
 | |
|         for ( i = 0 ; i < count ; i++ )
 | |
|             printf( "%7ld %s %7ld %3d%% %02d-%02d-%04d %02d:%02d %s %s\n",
 | |
|                     z[ i ].size,
 | |
|                     levels[ z[ i ].level ],
 | |
|                     z[ i ].compressed_size,
 | |
|                     ratio( z + i ),
 | |
|                     z[ i ].month,
 | |
|                     z[ i ].date,
 | |
|                     z[ i ].year,
 | |
|                     z[ i ].hour,
 | |
|                     z[ i ].minute,
 | |
|                     z[ i ].name,
 | |
|                     z[ i ].comment );
 | |
|     ALFreeDir( z );
 | |
|     i = ALAppend( "libs.zip", "*.tr?", 1, my_callback );
 | |
|     printf( "\n" );
 | |
|     return i;
 | |
| }
 | |
| 
 |