]> git.llucax.com Git - z.facultad/75.06/jacu.git/commitdiff
Se mueve la lectura del bloque a BS, que ahora le voy a meter una optimizacion para
authorRicardo Markiewicz <gazer.arg@gmail.com>
Sun, 27 Jun 2004 01:14:40 +0000 (01:14 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Sun, 27 Jun 2004 01:14:40 +0000 (01:14 +0000)
 textos a ver que pasa.

src/blocksorting/bs.c
src/blocksorting/bs.h
src/jacu.c

index fb13e55655037acfa078922a4f94d0f8ddc72d37..93b7bb55c5395bdc082f5ba939c97d988b0938c3 100644 (file)
@@ -139,3 +139,18 @@ void bs_destroy(t_BlockSort *bs)
        free(bs->array);
        free(bs);
 }
+
+int bs_readblock(FILE *fp, char *data, Uint32 pagesize)
+{
+       Uint32 i=0;
+
+       while ((!feof(fp)) && (i < pagesize)) {
+               data[i++] = fgetc(fp);
+       }
+
+       /* Saco un EOF que lee de mas */
+       if (i<pagesize) i--;
+
+       return i;
+}
+
index 9efc1e5ba02179e03527f18c60729027407990e6..7e686ee5142312bdcda2224e67d376180562eb58 100644 (file)
@@ -56,5 +56,7 @@ void bs_solve(char *in, char *out, t_BlockSort *bs, Uint32 *k, Uint32 leido);
  */
 void bs_restore(char *dst, char *c, Uint32 k, Uint32 len);
 
+int bs_readblock(FILE *fp, char *data, Uint32 pagesize);
+
 #endif
 
index 4b35832d14a3a0035f6e969a7db1a09b887f4e04..556f621a58f7a3c2d54e7c6a4a32b8d45e58fb80 100644 (file)
@@ -161,13 +161,9 @@ int comprimir(char *src, char *dst, Uint32 pagesize, Uint32 volumesize, t_Flags
        total = 0;
        while (!feof(fp)) {
                i = 0;
-               while ((!feof(fp)) && (i < pagesize)) {
-                       data[i++] = fgetc(fp);
-                       total++;
-               }
+               i = bs_readblock(fp, data, pagesize);
+               total += i;
 
-               /* Saco un EOF que lee de mas */
-               if (i<pagesize) i--;
 
                /* Aplico BS guardando su resultado + el K en salida */
                bs_solve(data, salida, bs, &k, i);