[Include] TSave - Include de salvamento de dados (Estudos)
#1

Bom, fiz essa include com intuнdo de estudar sobre salvamento de dados com as funзхes padrхes (files.inc)..

Essa include nгo й rapida, nгo recomendo o uso.. Como citei acima, й uma include para estudos!

Hб um tempo atrбs estava olhando a RocksFile e achei interessante a logica usada, entгo essa include acabou ficando com quase a mesma logica da RocksFile.

Antes que venham falar.. "Hб, foi copia" eu jб deixo minha resposta: "Nгo, nгo foi copia.. Como estudei a RocksFile a estrutura й parecida."

• ° Funзхes.
pawn Код:
native TS_CriarArquivo(filename[]);
native TS_DeletarArquivo(filename[]);
native TS_CarregarArquivo(filename[]);
native TS_SalvarArquivo();
native TS_FecharArquivo();

native TS_EscreverString(filename[], linename[], string[]);
native TS_EscreverInt(filename[], linename[], inteiro);

native TS_LerString(linename[]);
native TS_LerInt(linename[]);
• ° Finalizaзгo do tуpico.
Nгo vejo necessidade de falar sobre cada funзгo, afinal apenas lendo os nomes da para saber oque cada funзгo faz.

Espero que gostem, pretendo aprimorar ela de acordo com o tempo.. Quem sabe nas prуximas atualizaзхes nгo dгo velocidade?

• ° Download.
pawn Код:
#include a_samp
new NomeArquivo[50];
new Conteudo[1000];
/*
native TS_CriarArquivo(filename[]);
native TS_DeletarArquivo(filename[]);
native TS_CarregarArquivo(filename[]);
native TS_SalvarArquivo();
native TS_FecharArquivo();

native TS_EscreverString(filename[], linename[], string[]);
native TS_EscreverInt(filename[], linename[], inteiro);

native TS_LerString(linename[]);
native TS_LerInt(linename[]);
*/

#define TS_DeletarArquivo(%0) fremove(%0)

stock TS_CriarArquivo(filename[])
{
    if(fexist(filename)) return false;
    new File: Arquivo = fopen( filename, io_write );
    fclose(Arquivo);
    return true;
}

stock TS_CarregarArquivo(filename[])
{
    new File: Arquivo;
    new string[3000];
    new linhas[128];
    Arquivo = fopen(filename,io_read);
    while(fread(Arquivo,linhas))
    {
        format(string,3000,"%s%s",string,linhas);
    }
    fclose(Arquivo);
    strmid(Conteudo, string, 0, strlen(string), 255);
    strmid(NomeArquivo, filename, 0, strlen(filename), 255);
    return true;
}

stock TS_EscreverInt(linename[], inteiro)
{
    new string[128];
    format(string, sizeof string, "%d", inteiro);
    return TS_EscreverString(linename, string);
}

stock TS_EscreverString(linename[], string[])
{
    new Igual[60];
    format(Igual, sizeof Igual, "%s=", linename);
    if(strfind(Conteudo,Igual,false) == -1)
    {
        format(Conteudo, 500, "%s%s%s\r\n",Conteudo, Igual, string);
    }
    else
    {
        strdel(Conteudo, strfind(Conteudo,Igual,false) + strlen(Igual), strfind(Conteudo, "\r\n", false));
        strins( Conteudo, string, strfind(Conteudo,Igual,false) + strlen(Igual) );
    }
    return false;
}

stock TS_SalvarArquivo()
{
    new File: Arquivo;
    Arquivo = fopen( NomeArquivo, io_write );
    fwrite( Arquivo, Conteudo );
    fclose(Arquivo);
    return true;
}

stock TS_LerInt(filename[], linename[])
    return strval(TS_LerString(filename, linename));

stock TS_LerString(filename[], linename[])
{
    new result[200];
    new igual[60];
   
    new File: Arquivo;
    new string[3000];
    new linhas[200];
    Arquivo = fopen(filename,io_read);
   
    while(fread(Arquivo,linhas))
    {
        format(string,3000,"%s%s",string,linhas);
    }
    fclose(Arquivo);
    format(igual,51,"%s=",linename);
    if(strfind(string,igual,false) != -1)
    {
        strmid(result,string,strfind(string, igual, false)+strlen(igual),strfind(string,"\r\n",false,strfind(string, igual, false)+strlen(igual)));
    }
    return result;
}
• ° Creditos.
Antonio Rodrigues (Toni Santolia) - Include TSave.
Black Coder - RocksFire.
Reply
#2

Nгo testei, mais concerteza deve tar legal
+REP mano
Reply
#3

Voce nгo pode dar rep, entгo nгo fale isso sу porque vocк vк alguns falando isso e vai copiar.

--

Legal seu trabalho,
Reply
#4

Legal, tambйm estava afim de criar um assim, apenas para uso prуprio mesmo, vou dar uma estudada no cуdigo.
Reply
#5

Quote:
Originally Posted by LockeD
Посмотреть сообщение
Nгo testei, mais concerteza deve tar legal
+REP mano
Quote:
Originally Posted by ProKillerpa
Посмотреть сообщение
Voce nгo pode dar rep, entгo nгo fale isso sу porque vocк vк alguns falando isso e vai copiar.

--

Legal seu trabalho,
Obrigado ProKillerpa e LockeD.
Quote:
Originally Posted by DogeMan
Посмотреть сообщение
Legal, tambйm estava afim de criar um assim, apenas para uso prуprio mesmo, vou dar uma estudada no cуdigo.
DogeMan, se for para uso prуprio tem que dar uma boa melhorada na velocidade.
Reply
#6

Bom trabalho !
+ rep
Reply
#7

Quote:
Originally Posted by ProKillerpa
Посмотреть сообщение
Voce nгo pode dar rep, entгo nгo fale isso sу porque vocк vк alguns falando isso e vai copiar.

--

Legal seu trabalho,
?? Mas sу tem um problema.. ninguйm pediu sua opiniгo. Nгo curtiu meu post ? denuncia entгo, vai fundo..
Reply
#8

Quote:
Originally Posted by LockeD
Посмотреть сообщение
?? Mas sу tem um problema.. ninguйm pediu sua opiniгo. Nгo curtiu meu post ? denuncia entгo, vai fundo..
Larga de ser ignorante rapaz, isso aqui й um fуrum de programaзгo e se vocк nгo leva em conta crнticas vocк й uma pessoa inъtil e ignorante, entгo apenas cresзa antes de vir, porque programaзгo й pra pessoas que tem noзгo de que fazem e saber usar-las com sabedoria
Reply
#9

Bem para aprender e fazer algo bom tem de se comecar por algum lado ne verdade.

Como vc disse й apenas um codigo para estudos, mesmo assim bom trabalho.
Reply
#10

Quote:
Originally Posted by PT
Посмотреть сообщение
Bem para aprender e fazer algo bom tem de se comecar por algum lado ne verdade.

Como vc disse й apenas um codigo para estudos, mesmo assim bom trabalho.
Obrigado PT ^^ Estou voltando a mexer com pawn agora.. Estou dando seguimento a este trabalho para "desenferrujar" um pouco!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)