Subversion Repositories NedoOS

Rev

Rev 49 | Rev 469 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1. #include <stdio.h>
  2. //#include <mem.h>
  3. #include <string.h>
  4.  
  5. #define BYTE unsigned char
  6. #define MAXDEFB 8
  7.  
  8. BYTE filebuf[65536];
  9.  
  10. void padfile(char * finname, char * foutname, int skip, int limit)
  11. {
  12. FILE* fin;
  13. FILE* fout;
  14. int i;
  15. int size;
  16.  
  17.   fin = fopen(finname, "rb");
  18.   if (fin) {
  19.     fread(filebuf, 1, skip, fin);
  20.     fout = fopen(foutname, "wb");
  21.     if (fout) {
  22.       while (1) {
  23.         size = fread(filebuf, 1, MAXDEFB, fin);
  24.         if (size == 0) {
  25.           size = MAXDEFB;
  26.           i = 0;
  27.           while (1) {
  28.             filebuf[i] = 0x00;
  29.             i++;
  30.             if (i == size) break;
  31.           };
  32.         };
  33.         if (limit == 0) break;
  34.         if (limit < size) size = limit;
  35.         limit = limit - size;
  36.         i = 0;
  37.         while (1) {
  38.           fputc(filebuf[i], fout);
  39.           i++;
  40.           if (i == size) break;
  41.         };
  42.       };
  43.       fclose(fout);
  44.     };
  45.     fclose(fin);
  46.   };
  47. }
  48.  
  49. int main(int argc,char* argv[])
  50. {
  51. //  int i;
  52.   char *finname;
  53.   char *foutname;
  54.   char *strskip;
  55.   char *strlimit;
  56.   int skip;
  57.   int limit;
  58.   finname = "tokarm.bin";
  59.   foutname = "out.bin";
  60.   strskip = "0";
  61.   strlimit = "65536";
  62.  
  63.   if (argc<5) {
  64.     printf(
  65.       "NedoPAD\n"
  66.       "\tnedopad.exe file.in file.out <skip> <size>\n"
  67.     );
  68.   }else {
  69.     finname = argv[1];
  70.     foutname = argv[2];
  71.     strskip = argv[3];
  72.     strlimit = argv[4];
  73.   };
  74.  
  75.   skip = atoi(strskip);
  76.   limit = atoi(strlimit);
  77.   padfile(finname, foutname, skip, limit);
  78.  
  79.   return 0;
  80. }