Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/etc/Divers/FileNb255.hpp

Go to the documentation of this file.
00001 // Standard J2K Library
00002 // LGPL licensed.
00003 // http://j2k.sourceforge.net/
00004 
00005 #ifndef __J2K__FileNb255_CPP__
00006 #define __J2K__FileNb255_CPP__
00007 
00008 #include <j2k/Fred/Standard.hpp>
00009 #include <j2k/Fred/JFile.cpp>
00010       
00011 /*
00012   http://j2k.sourceforge.net/src/j2k/Fred/Standard.hpp
00013   http://j2k.sourceforge.net/src/j2k/Fred/JFile.hpp
00014   http://j2k.sourceforge.net/src/j2k/Fred/JFile.cpp
00015 */
00016 
00017 #define  MAX  4096
00018 
00019 __J2K__EXTERN_C
00020 
00021 short  table[ MAX ];
00022 char   buffer[ MAX * 2 ];
00023 size_t length = 0;
00024 
00025 void save()
00026 {
00027   register unsigned short i = 0;
00028   register unsigned char  c = NULL;
00029   register unsigned short pos = 0;
00030   memset( buffer, 0, MAX );
00031   for( i = 0; i < MAX; i++ )
00032   {
00033     if ( table[ i ] < 255 ) {
00034       c = (UCHAR)table[ i ];
00035       buffer[ pos ] = c;
00036       pos++;
00037     } else if ( table[ i ] < 510 ) {
00038       c = (UCHAR)(table[ i ] - 255);
00039       buffer[ pos ] = 255;
00040       pos++;
00041       buffer[ pos ] = c;
00042       pos++;
00043     } else {
00044       printf( "Error: Number too big." );
00045     }
00046   } 
00047   length = pos;
00048 }
00049 
00050 void load()
00051 {
00052   register unsigned short i = 0;
00053   register unsigned char  c = NULL;
00054   register unsigned short pos = 0;
00055   memset( buffer, 0, MAX );  
00056   for( i = 0; i < MAX; i++ )
00057   {
00058     c = (UCHAR)buffer[ pos ];
00059     pos++;
00060     if ( c < 255 ) {
00061       table[ i ] = (USHORT)c;
00062     } else if ( c == 255 ) {
00063       c = (UCHAR)buffer[ pos ];
00064       pos++;
00065       table[ i ] = (USHORT)c;
00066     } else {
00067       printf( "Error: Number too big." );
00068     }
00069   }
00070   length = pos;
00071 } 
00072 
00073 void toDisk()
00074 {
00075 JFile myFile( "number.txt", "wb" );
00076  myFile.putData( buffer, length );
00077 }
00078       
00079 void fromDisk()
00080 {  
00081 JFile myFile( "number.txt", "rb" );
00082  myFile.putData( buffer, MAX*2 );
00083 } 
00084 
00085 void test()
00086 {
00087   register unsigned short i = 0;   
00088   for( i = 0; i < MAX; i++ ) {
00089     table[ i ] = (i+200) % 300;
00090   }
00091    
00092   save();
00093   toDisk();
00094     
00095   fromDisk();
00096   load();
00097       
00098   for( i = 0; i < MAX; i++ ) {
00099     printf( "[%d]\t", table[ i ] );
00100   }
00101       
00102 }
00103 
00104 __J2K__END_C
00105    
00106 #endif
00107 
00108 // Hope it helps !
00109 // Fred.
00110   
00111 
00112  
00113 

Generated on Sun Oct 14 18:46:31 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001