[Off] Compactaзгo de dados
#1

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



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
5 x 4 = 20 bytes

com
pawn Код:
ш]
2 x 4 = 8 bytes


Uma economia de 60%
Reply


Messages In This Thread
Compactaзгo de dados - by ipsBruno - 16.10.2013, 05:41
Re: Compactaзгo de dados - by shittt - 16.10.2013, 05:44
Respuesta: Compactaзгo de dados - by ipsBruno - 16.10.2013, 05:46
Re: Compactaзгo de dados - by WLSF - 16.10.2013, 09:05
Respuesta: Re: Compactaзгo de dados - by ipsBruno - 16.10.2013, 09:10
Re: Respuesta: Re: Compactaзгo de dados - by WLSF - 16.10.2013, 10:05
Re: Compactaзгo de dados - by PT - 16.10.2013, 13:24
Respuesta: Re: Compactaзгo de dados - by ipsBruno - 16.10.2013, 16:38
Re: Respuesta: Re: Compactaзгo de dados - by PT - 16.10.2013, 16:48
Respuesta: Re: Respuesta: Re: Compactaзгo de dados - by ipsBruno - 16.10.2013, 16:54

Forum Jump:


Users browsing this thread: 1 Guest(s)