00001
00002
00003
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
00013
00014
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
00109
00110
00111
00112
00113