00001
00002
00003
00004
00005 #ifndef __J2K__FileNb255_CPP__
00006 #define __J2K__FileNb255_CPP__
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #include <stdio.h>
00045 #include <stdlib.h>
00046 #include <string.h>
00047
00048 #define MAX 80
00049 #define UCHAR unsigned char
00050 #define USHORT unsigned short
00051
00052 short table[ MAX ];
00053 char buffer[ MAX * 2 ];
00054 size_t length = 0;
00055
00056 void save()
00057 {
00058 register unsigned short i = 0;
00059 register unsigned char c = NULL;
00060 register unsigned short pos = 0;
00061 memset( buffer, 0, MAX );
00062 for( i = 0; i < MAX; i++ )
00063 {
00064 if ( table[ i ] < 255 ) {
00065 c = (UCHAR)table[ i ];
00066 buffer[ pos ] = c;
00067 pos++;
00068 } else if ( table[ i ] < 510 ) {
00069 c = (UCHAR)(table[ i ] - 255);
00070 buffer[ pos ] = 255;
00071 pos++;
00072 buffer[ pos ] = c;
00073 pos++;
00074 } else {
00075 printf( "Error: Number too big." );
00076 }
00077 }
00078 length = pos;
00079 }
00080
00081 void load()
00082 {
00083 register unsigned short i = 0;
00084 register unsigned char c = NULL;
00085 register unsigned short pos = 0;
00086 memset( buffer, 0, MAX );
00087 for( i = 0; i < MAX; i++ )
00088 {
00089 c = (UCHAR)buffer[ pos ];
00090 pos++;
00091 if ( c < 255 ) {
00092 table[ i ] = (USHORT)c;
00093 } else if ( c == 255 ) {
00094 c = (UCHAR)buffer[ pos ];
00095 pos++;
00096 table[ i ] = (USHORT)c;
00097 } else {
00098 printf( "Error: Number too big." );
00099 }
00100 }
00101 length = pos;
00102 }
00103
00104 #undef UCHAR
00105 #undef USHORT
00106
00107 #include <j2k/Fred/JFile.cpp>
00108
00109
00110
00111
00112 void toDisk()
00113 {
00114 JFile myFile( "number.txt", "wb" );
00115 myFile.putData( buffer, length );
00116 }
00117
00118 void fromDisk()
00119 {
00120 JFile myFile( "number.txt", "rb" );
00121 myFile.putData( buffer, MAX*2 );
00122 }
00123
00124 void test()
00125 {
00126 register unsigned short i = 0;
00127 for( i = 0; i < MAX; i++ ) {
00128 table[ i ] = (i+200) % 300;
00129 }
00130
00131 save();
00132 toDisk();
00133
00134 fromDisk();
00135 load();
00136
00137 for( i = 0; i < MAX; i++ ) {
00138 printf( "[%d]\t", table[ i ] );
00139 }
00140
00141 }
00142
00143
00144
00145
00146
00147 #endif
00148
00149
00150
00151
00152
00153