16.10.2013, 05:41
Nunca vi nenhum plugin ou tуpico a respeito.
Bem, compactaзгo de dados й um assunto bastante difнcil, mas nunca vi ninguйm ter a ideia de fazer algumas funзхes para isto.
Pensando assim, resolvi criar um sistema simples de compactaзгo de dados que funciona com nъmeros de 0 a 65025
Entao:
Tб bem simples por enquanto, й sу uma demonstraзгo. Logo que aprimorar este sistema, irei colocar no IPSI
A economia de memуria й bastante alta com valores altos, veja o exemplo:
Sem compactaзгo:
5 x 4 = 20 bytes
com
2 x 4 = 8 bytes
Uma economia de 60%
Bem, compactaзгo de dados й um assunto bastante difнcil, mas nunca vi ninguйm ter a ideia de fazer algumas funзхes para isto.
Pensando assim, resolvi criar um sistema simples de compactaзгo de dados que funciona com nъmeros de 0 a 65025
pawn Код:
#define USE_UTF8 false
readCompactValue() {
new File:gFile = fopen("file.txt", io_readwrite ), c, d;
c = fgetchar(gFile, 0, USE_UTF8);
d = fgetchar(gFile, 1, USE_UTF8);
fclose(gFile);
return ~d ? c *0xff + d: c ;
}
saveCompactValue(value) {
new File:gFile = fopen("file.txt", io_write);
if(value > 254) {
fputchar( gFile, value / 0xff , USE_UTF8 );
fputchar( gFile, value % 0xff , USE_UTF8 );
}
else {
fputchar( gFile, value , USE_UTF8 );
}
fclose(gFile);
return true;
}
Entao:
pawn Код:
saveCompactValue(63333);
printf("%d", readCompactValue());
Tб bem simples por enquanto, й sу uma demonstraзгo. Logo que aprimorar este sistema, irei colocar no IPSI
A economia de memуria й bastante alta com valores altos, veja o exemplo:
Sem compactaзгo:
pawn Код:
63333
com
pawn Код:
ш]
Uma economia de 60%