campo-sirio/al/examples/ex19con.c
alex 714dd74636 Archive Library versione 2.00
git-svn-id: svn://10.65.10.50/trunk@5350 c028cbd2-c16b-5b4b-a496-9718f37d4682
1997-10-09 16:09:54 +00:00

61 lines
1.7 KiB
C
Executable File

#include <stdio.h>
#include <conio.h>
#include "arclib.h"
#include "copyengn.h"
#include "filestor.h"
#include "memstore.h"
main( int argc, char *argv[] )
{
printf( "This program compresses an input file of\n"
"your choosing into a huge buffer. It then\n"
"gets a pointer into the buffer and uses that\n"
"to see if things worked as they should have.\n"
"\n"
"Usage: ex19con [file_name]\n"
"\n"
"Hit ESC to exit, any other key to continue..." );
if ( getch() == 0x1b )
return 1;
printf( "\n" );
{
hALStorage f;
hALStorage h;
hALCompressor c;
int ch;
#if defined( AL_FLAT_MODEL )
char *p;
h = newALMemory( "My big buffer", 0, -1 );
#else
char _huge *p;
h = newALHugeMemory( "My big buffer", 0, -1 );
#endif
c = newALCopyCompressor();
if ( argc > 1 ) {
f = newALFile( argv[ 1 ] );
printf( "Compressing %s\n", argv[ 1 ] );
} else {
f = newALFile( "ex19con.exe" );
printf( "Compressing ex19con.exe\n" );
}
printf( "Compress returned %d\n",
ALCompress( c, f, h ) );
#if defined( AL_FLAT_MODEL )
p = ALMemoryGetBuffer( h );
#else
p = ALHugeMemoryGetBuffer( h );
#endif
ALStorageOpen( f );
while ( ( ch = ALStorageReadChar( f ) ) >= 0 )
if ( ch != ( *p++ & 0xff ) ) {
printf( "Mismatch!\n" );
return 0;
}
printf( "Comparison passed!\n" );
}
return 1;
}