[Off] iINI - Include de Salvamento ( Para Estudos )
#1

Oii, tudo bom?

Voltei agora a estudar sobre salvamento de dados no samp..

Comecei a fazer uma include simples, ela jб tem as funзхes:

_CriarArquivo(arquivo[])
_AbrirArquivo(arquivo[])
_EscreverTexto(Linha[], Valor[])
_EscreverNumero(Linha[], Valor)
_SalvarArquivo()

O Codigo na verdade estб bem simples..
Alguem experiente pode me ajudar a analisar o script e me falar em que posso melhorar?

Obrigado

pawn Код:
#include a_samp

#define _CriarArquivo(%0) fclose(fopen(%0,io_write)) && _AbrirArquivo(%0)

enum input_ {
    iLinha[56],
    iValor[128],
    iValor2,
    iTipo
};
new Arquivo_Nome[128];
new Ultima_Linha;
new Input_Salvamento[256][input_];

stock _AbrirArquivo(const Arquivo[]) {
    if(!Arquivo[0])
        return false;
    new File:arq_ = fopen(Arquivo,io_readwrite);
    if(arq_) {
        strmid(Arquivo_Nome, Arquivo, 0, strlen(Arquivo), 255);
        Ultima_Linha = 0;
    }
    fclose(arq_);
    return true;
}

stock _EscreverTexto(Linha[], Valor[]) {
    strmid(Input_Salvamento[Ultima_Linha][iLinha], Linha, 0, strlen(Linha), 255);
    strmid(Input_Salvamento[Ultima_Linha][iValor], Valor, 0, strlen(Valor), 255);
    Input_Salvamento[Ultima_Linha][iTipo] = 1;
    Ultima_Linha++;
    return true;
}

stock _EscreverNumero(Linha[], Valor) {
    strmid(Input_Salvamento[Ultima_Linha][iLinha], Linha, 0, strlen(Linha), 255);
    Input_Salvamento[Ultima_Linha][iValor2] = Valor;
    Input_Salvamento[Ultima_Linha][iTipo] = 2;
    Ultima_Linha++;
    return true;
}

stock _SalvarArquivo() {
    new File:arq_ = fopen(Arquivo_Nome,io_append);
    new str[128];
    if(arq_) {
        for(new i = 0; i < Ultima_Linha; i++) {
            if(Input_Salvamento[i][iTipo] == 1) {
                format(str, sizeof str, "%s = %s\r\n", Input_Salvamento[i][iLinha],Input_Salvamento[i][iValor]);
                fwrite(arq_,str);
            }
            else if(Input_Salvamento[i][iTipo] == 2) {
                format(str, sizeof str, "%s = %d\r\n", Input_Salvamento[i][iLinha],Input_Salvamento[i][iValor2]);
                fwrite(arq_,str);
            }
        }
    }
    fclose(arq_);
    return true;
}
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)