28.01.2014, 21:19
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
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;
}