]> git.llucax.com Git - z.facultad/75.06/jacu.git/blobdiff - src/blocksorting/main.c
Hago que se genere el symlink de jacu a grupo11 en el make all :)
[z.facultad/75.06/jacu.git] / src / blocksorting / main.c
index 91582a92ccd7c6607a99b64f1e4f14a14917c62c..56e849b34caa8239de7c17023beb5b272a71eb66 100644 (file)
@@ -1,6 +1,21 @@
 
 #include "bs.h"
 
+void print_v(char *txt, char *data, Uint32 len)
+{
+       Uint32 i;
+
+       printf("%s", txt);
+       
+       for(i=0; i<len; i++) {
+               if (data[i] == '\n')
+                       printf("#");
+               else
+                       printf("%c", data[i]);
+       }
+       printf("\n");
+}
+
 int main(int argc, char *argv[])
 {
        char *data; 
@@ -23,7 +38,7 @@ int main(int argc, char *argv[])
        }
 
        data = malloc(sizeof(char)*len);
-       salida = malloc(sizeof(char)*(len+1+sizeof(unsigned long int)*2));
+       salida = malloc(sizeof(char)*(len+1+sizeof(unsigned long int)));
        orig = malloc(sizeof(char)*(len+1));
 
        salida[len] = '\0';
@@ -31,27 +46,21 @@ int main(int argc, char *argv[])
 
        bs = bs_create(len);
 
-       c = fgetc(fp);
        total = 0;
        while (!feof(fp)) {
                i = 0;
-               while ((!feof(fp)) && (i < len)) {
-                       data[i++] = c;
-                       c = fgetc(fp);
-                       total++;
-               }
-               /* lleno data mano! */
-               srand(time(NULL));
-               {
-                       size_t jj;
-                       for(jj=0; jj<i;jj++)
-                               data[jj] = rand()%255;
-               }
+               i = bs_readblock(fp, data, len, 1);
+               
+               total += i;
+               
                bs_solve(data, salida, bs, &k, i);
 
                /* XXX ACA SALIDA DEBERIA PASAR A LA SIGUIENTE ETAPA XXX */
                if (argc == 3) {
-                       bs_restore(orig, salida+sizeof(Uint32)*2, k, i);
+                       bs_restore(orig, salida+sizeof(Uint32), k, i);
+                       print_v("Leido     : ", data, i);
+                       print_v("BS        : ", salida+sizeof(Uint32), i);
+                       /*print_v("Restorado : ", orig, i);*/
                } else
                        fwrite(salida, 1, i, stdout);
        }