[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
#2

Vocк pegou a bCini3 como base.

Anyway, esta funзao para escrever em arquivos estб errada, se o arquivo jб existir nao vai acontecer nada.
Reply
#3

Quote:
Originally Posted by Lucas_Pawno
Посмотреть сообщение
Vocк pegou a bCini3 como base.

Anyway, esta funзao para escrever em arquivos estб errada, se o arquivo jб existir nao vai acontecer nada.
Nгo, nгo usei a bCini3 como base.
Sim, eu estudei todo o script da bCini3.

Vou arrumar a funзгo para escrever arquivos..
Reply
#4

Quote:
Originally Posted by Input
Посмотреть сообщение
Nгo, nгo usei a bCini3 como base.
Sim, eu estudei todo o script da bCini3.

Vou arrumar a funзгo para escrever arquivos..
Se vocк estudou ela, vocк usou o que vocк aprendeu com o estudo como base.

Obs: Caso vocк queira algumas dicas, me adicione no SKYPE ~> biel_cop
Reply
#5

Lugar errado.
Reply
#6

Quote:
Originally Posted by @Riichard
Посмотреть сообщение
Lugar errado.
Nгo й um release, ele postou pra tirar duvidas, e ouvir comentбrios construtivos.

E se o tуpico tб declarado como off, e aborda assunto de programaзгo aberto a discussгo, entгo estб na бrea certa.


@Tуpico


Nгo tive tempo de olhar seu cуdigo ainda, vocк me mandou ele por PM, desculpa nгo ter te respondido.

Estive olhando brevemente, e o seu _CriarArquivo pode gerar futuros erros, vocк testou isso?
Reply
#7

Quote:
Originally Posted by @Riichard
Посмотреть сообщение
Lugar errado.
Errado.

O lugar estб correto, o que eu achei errado mesmo foi ter colocado [Off] ao invйs de [Projeto].
Reply
#8

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
Nгo й um release, ele postou pra tirar duvidas, e ouvir comentбrios construtivos.

E se o tуpico tб declarado como off, e aborda assunto de programaзгo aberto a discussгo, entгo estб na бrea certa.


@Tуpico


Nгo tive tempo de olhar seu cуdigo ainda, vocк me mandou ele por PM, desculpa nгo ter te respondido.

Estive olhando brevemente, e o seu _CriarArquivo pode gerar futuros erros, vocк testou isso?
Erro meu. @-@
Reply
#9

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
Nгo й um release, ele postou pra tirar duvidas, e ouvir comentбrios construtivos.

E se o tуpico tб declarado como off, e aborda assunto de programaзгo aberto a discussгo, entгo estб na бrea certa.


@Tуpico


Nгo tive tempo de olhar seu cуdigo ainda, vocк me mandou ele por PM, desculpa nгo ter te respondido.

Estive olhando brevemente, e o seu _CriarArquivo pode gerar futuros erros, vocк testou isso?
Cheguei a testar Willian..
Nгo tem problema nгo ter me respondido kkk

Vou refazer a funзгo _CriarArquivo e arrumar a _EscreverTexto..

A _CriarArquivo na minha opiniгo sу falta um checagem para saber se o arquivo jб existe..
Reply
#10

Vocк quer uma dica ?

Tente usar uma tecnologia nova, sem ser o Cache.

Eu pensei em Multi Thread, onde sao usados alguns arquivos e variбveis a mais para o salvamento, ao invйs de um sу.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)