SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 13 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

4 participantes

    bCini8 - Trabalhando eficazmente/velozmente com arquivos locais

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11643
    Moedas : 1032950
    Data de inscrição : 06/10/2011
    Idade : 29
    Localização : Brasil

    bCini8 - Trabalhando eficazmente/velozmente com arquivos locais Empty bCini8 - Trabalhando eficazmente/velozmente com arquivos locais

    Mensagem por Weslley_Script Sex 21 Set 2018 - 17:44

    Include bCini8

    Eu havia prometido para mim mesmo que eu não postaria mais nenhuma 🆒 bCini aqui no fórum, porém isso fez eu rever o meu conceito sobre esta decisão... Diversas pessoas não são capazes de te acompanhar e te julgam por seus trabalhos, e isto não é legal.

    Então, eu estou aqui hoje então para postar a include de salvamento de arquivos locais mais rápida que eu consegui programar até hoje (que finalmente supera DOF2 em inúmeros aspectos), a oitava e provavelmente (quase que certamente) última versão desta include, a bCini8, acompanhem:

    Funções nativas

    Código:
    bCini6_Open - fopen
    bCini6_Exists - fexist
    bCini6_Write - fwrite
    bCini6_Read - fread
    bCini6_Close - fclose
    bCini6_Delete - fremove

    Escrita

    Função ( arquivo, nome da linha, escrita );

    Escrevendo textos em um arquivo:

    Código:
    main()
    {
          bCini8_SetText("Biel_COP.ini","Olá","Como você vai ?");
    }

    Escrevendo int's em um arquivo:

    Código:
    main()
    {
          bCini8_SetInt("Biel_COP.ini","Olá",1000);
    }

    Escrevendo float's em um arquivo:

    Código:
    main()
    {
          bCini8_SetFloat("Biel_COP.ini","Olá",50.0);
    }

    Leitura

    Função ( arquivo, nome da linha );

    Lendo textos de um arquivo

    Código:
    main()
    {
          printf("%s",bCini8_ReadText("Biel_COP.ini","Olá"));
    }

    Lendo int's de um arquivo:

    Código:
    main()
    {
          printf("%d",bCini8_ReadInt("Biel_COP.ini","Olá"));
    }

    Lendo float's de um arquivo:

    Código:
    main()
    {
          printf("%f",bCini8_ReadFloat("Biel_COP.ini","Olá"));
    }

    Mais funções

    bCini8_ReadLineName ( nome do arquivo, id da linha ); - Obtenha o nome do ID de uma linha já existente.

    Código:
    main()
    {
         printf("%s",bCini8_ReadLineName("Biel_COP.ini",0));
    }

    bCini8_DeleteSet ( nome do arquivo, nome da linha ); - Delete uma linha que já existe.

    Código:
    main()
    {
         bCini8_DeleteSet("Biel_COP.ini","Olá");
    }

    bCini8_Copy ( nome do arquivo 1, nome do arquivo 2, valor da variável de deleção ); - Copie todo o conteúdo de um arquivo para outro arquivo.

    Dica: O valor da variável de deleção deverá ser 1 para que o arquivo 1 seja deletado após ser copiado para o arquivo 2; o valor 0 indica que haverá cópia, mas não haverá deleção!

    Código:
    main()
    {
         bCini8_Copy("Biel_COP.ini","Biel.ini",1); // Deletar o arquivo 1 após copiá-lo para o arquivo 2
    }

    bCini8_ChangeLine (nome do arquivo, linha, novo nome da linha); - Troque o nome de uma linha

    Código:
    main()
    {
         bCini8_ChangeLine("Biel_COP.ini","Olá","Olá 2");
    }

    bCini8_IsSet ( nome do arquivo, nome da linha ); - Cheque se uma linha já existe.

    Código:
    main()
    {
         if(bCini8_IsSet("Biel_COP.ini","Olá"))
         {
              print("A linha 'Olá' do arquivo 'Biel_COP.ini' existe!");
         }
         return 1;
    }

    Benchmark com a DOF2

    Eu tenho sã consciência que o que as diferem em velocidade é algo bem 'rasteiro', porém já se dá para notar uma enorme melhora com isto; finalmente houve uma include brasileira que sim, pôde competir com a tão aclamada DOF2... Smile

    bCini8 - Trabalhando eficazmente/velozmente com arquivos locais ExlG6VH

    Download

    Como instalar/usar: Crie um arquivo em sua pasta pawno/includes com o nome de bCini8.inc (sim, a extensão deve ser .inc para que haja reconhecimento da parte do compilador) e copie/cole todo o código abaixo neste novo arquivo; após isto, vá até o seu gamemode e use

    Código:
    #define bCini8.inc

    no início do gamemode! Com isto, basta usá-la com as funções citadas aqui Wink

    Código:
    // Include bCini8

    #define bCini8_Open fopen
    #define bCini8_Exists fexist
    #define bCini8_Write fwrite
    #define bCini8_Read fread
    #define bCini8_Close fclose

    #define bCini8_Create(%0) if(!bCini8_Exists(%0)) bCini8_Close(bCini8_Open(%0,io_write)) && bCini8_OpenArchive(%0)
    #define bCini8_Delete(%0) if(bCini8_Exists(%0)) fremove(%0)

    // Include definitions

    #define bCini8_Lines 100
    #define bCini8_Capacity 256

    #define bCini8_Separator "="
    #define bCini8_Null_Text "null"

    // Variables

    stock bCini8_Archive_Line[bCini8_Lines][bCini8_Capacity/4],bCini8_Archive_Value[bCini8_Lines][bCini8_Capacity],bCini8_Archive_Name[64] = bCini8_Null_Text,bCini8_Archive_Lines = 1,bool:bCini8_Archive_Has_Been_Used,Include_bCini8[bCini8_Capacity];

    // Functions

    #define bCini8_SetInt(%0,%1,%2) format(Include_bCini8,bCini8_Capacity,"%d",%2) && bCini8_SetText(%0,%1,Include_bCini8)
    #define bCini8_SetFloat(%0,%1,%2) format(Include_bCini8,bCini8_Capacity,"%.2f",%2) && bCini8_SetText(%0,%1,Include_bCini8)

    #define bCini8_ReadText(%0,%1) bCini8_Archive_Value[bCini8_IsSet(%0,%1)]
    #define bCini8_ReadInt(%0,%1) strval(bCini8_Archive_Value[bCini8_IsSet(%0,%1)])
    #define bCini8_ReadFloat(%0,%1) floatstr(bCini8_Archive_Value[bCini8_IsSet(%0,%1)])

    #define bCini8_CleanArchive(%0) if(bCini8_Exists(%0)) bCini8_OpenArchive(%0); for(new i = 1; i < bCini8_Archive_Lines; ++i) bCini8_DeleteSet(%0,bCini8_Archive_Line[i])
    #define bCini8_Log(%0,%1) new File:bCini8_Archive = bCini8_Open(%0,io_append); bCini8_Write(bCini8_Archive,%1) && bCini8_Close(bCini8_Archive)

    stock bCini8_SetText(archive[],line[],value[])
    {
     if(bCini8_Archive_Lines < bCini8_Lines)
     {
         bCini8_Create(archive);

         if(!bCini8_IsSet(archive,line))
         {
     // Line

            strunpack(bCini8_Archive_Line[bCini8_Archive_Lines],line);

     if(!strlen(bCini8_Archive_Line[bCini8_Archive_Lines]))
        {
            strunpack(bCini8_Archive_Line[bCini8_Archive_Lines],bCini8_Null_Text);
            }
            // Value

            strunpack(bCini8_Archive_Value[bCini8_Archive_Lines],value);

            if(!strlen(bCini8_Archive_Value[bCini8_Archive_Lines]))
        {
            strunpack(bCini8_Archive_Value[bCini8_Archive_Lines],bCini8_Null_Text);
            }
     ++bCini8_Archive_Lines;
     }
     else
     {
        new bCini8_Line_ID = bCini8_IsSet(archive,line);

        strunpack(bCini8_Archive_Value[bCini8_Line_ID],value);

        if(!strlen(bCini8_Archive_Value[bCini8_Line_ID]))
        {
            strunpack(bCini8_Archive_Value[bCini8_Line_ID],bCini8_Null_Text);
        }
     }
     bCini8_Archive_Has_Been_Used = true;
     }
     return 1;
    }
    stock bCini8_ReadLineName(archive[],line)
    {
     bCini8_OpenArchive(archive);

     return bCini8_Archive_Line[line];
    }
    stock bCini8_DeleteSet(archive[],line[])
    {
        new bCini8_Line_ID = bCini8_IsSet(archive,line);

     if(bCini8_Line_ID)
     {
     bCini8_Archive_Line[bCini8_Line_ID][0] = 0;
     bCini8_Archive_Value[bCini8_Line_ID][0] = 0;

     bCini8_Archive_Has_Been_Used = true;
     }
     return 1;
    }
    stock bCini8_Copy(archive[],archive2[],bool:delete_archive)
    {
        if(bCini8_Exists(archive))
     {
        if(!bCini8_Exists(archive2))
        {
     bCini8_OpenArchive(archive);

     new File:bCini8_Archive_Used = bCini8_Open(archive2,io_write),bCini8_Format[bCini8_Capacity];

     for(new i = 1; i < bCini8_Archive_Lines; ++i)
     {
     if(bCini8_Archive_Line[i][0])
     {
     format(bCini8_Format,bCini8_Capacity,"%s=%s\r\n",bCini8_Archive_Line[i],bCini8_Archive_Value[i]);

     bCini8_Write(bCini8_Archive_Used,bCini8_Format);
     }
     }
     bCini8_Close(bCini8_Archive_Used);

     if(delete_archive)
     {
        bCini8_Delete(archive);
     }
     }
     }
     return 1;
    }
    stock bCini8_ChangeLine(archive[],line[],new_line[])
    {
        if(bCini8_Exists(archive))
     {
        new bCini8_Line_ID = bCini8_IsSet(archive,line);

     if(bCini8_Line_ID)
     {
     strunpack(bCini8_Archive_Line[bCini8_Line_ID],new_line);

     bCini8_Archive_Has_Been_Used = true;
     }
     }
     return 1;
    }
    // Open & Close

    stock bCini8_OpenArchive(archive[])
    {
     if(strcmp(bCini8_Archive_Name,archive,false))
     {
     bCini8_CloseArchive();

     strunpack(bCini8_Archive_Name,archive);

     if(bCini8_Exists(archive))
     {
        new bCini8_i[2],bCini8_Archive[bCini8_Capacity],File:bCini8_Archive_Used = bCini8_Open(archive,io_read);

     while(bCini8_Read(bCini8_Archive_Used,bCini8_Archive))
     {
     if(bCini8_Archive[0])
     {
        if(bCini8_Archive_Lines < bCini8_Lines)
        {
     if(bCini8_Archive[0] >= 256)
     {
     strdel(bCini8_Archive,0,1);
     }
     bCini8_i[0] = strlen(bCini8_Archive);

     if(bCini8_Archive[bCini8_i[0]-1] == '\r' || bCini8_Archive[bCini8_i[0]-1] == '\n')
     {
     bCini8_Archive[bCini8_i[0]-1] = 0;
     }
     if(bCini8_Archive[bCini8_i[0]-2] == '\r' || bCini8_Archive[bCini8_i[0]-2] == '\n')
     {
     bCini8_Archive[bCini8_i[0]-2] = 0;
     }
     bCini8_i[1] = strfind(bCini8_Archive,bCini8_Separator);

     strmid(bCini8_Archive_Line[bCini8_Archive_Lines],bCini8_Archive,0,bCini8_i[1],bCini8_i[1]+1);
     strmid(bCini8_Archive_Value[bCini8_Archive_Lines],bCini8_Archive,bCini8_i[1]+1,bCini8_i[0]);

     ++bCini8_Archive_Lines;
     }
     }
     }
     bCini8_Close(bCini8_Archive_Used);
     }
     }
     return 1;
    }
    stock bCini8_CloseArchive()
    {
        if(bCini8_Exists(bCini8_Archive_Name))
     {
     if(bCini8_Archive_Has_Been_Used)
     {
        new File:bCini8_Archive_Used = bCini8_Open(bCini8_Archive_Name,io_write),bCini8_Format[bCini8_Capacity];

     for(new i = 1; i < bCini8_Archive_Lines; ++i)
     {
         if(bCini8_Archive_Line[i][0])
     {
        format(bCini8_Format,bCini8_Capacity,"%s=%s\r\n",bCini8_Archive_Line[i],bCini8_Archive_Value[i]);

     bCini8_Write(bCini8_Archive_Used,bCini8_Format);
     }
     }
     bCini8_Close(bCini8_Archive_Used);
     }
     }
     for(new i = 1; i < bCini8_Archive_Lines; ++i)
     {
     if(bCini8_Archive_Line[i][0])
     {
     bCini8_Archive_Line[i][0] = 0;
         bCini8_Archive_Value[i][0] = 0;
     }
     }
     bCini8_Archive_Name = bCini8_Null_Text;
     bCini8_Archive_Lines = 1;
     bCini8_Archive_Has_Been_Used = false;

     return 1;
    }
    stock bCini8_IsSet(archive[],line[])
    {
     bCini8_OpenArchive(archive);

     for(new i = 1; i < bCini8_Archive_Lines; ++i)
     {
        if(bCini8_Archive_Line[i][0])
        {
         if(strcmp(bCini8_Archive_Line[i],line,true) == 0)
         {
     return i;
     }
     }
     }
     return 0;
    }
    // End of the include

    Créditos

    Biel (me): Toda as versões da bCini);
    W. Luigi: Ajuda inicial (bCini e bCini2);
    Bruno: Ajuda inicial (bCini);
    Gato: Ajuda na função de criar arquivos (bCini);
    DracoBlue: Lógicas iniciais (bCini, bCini2 e bCini3).



    bCini8 - Trabalhando eficazmente/velozmente com arquivos locais D07Xwqb
    bCini8 - Trabalhando eficazmente/velozmente com arquivos locais Yjab9HN
    HelderPT
    HelderPT
    --> Postador Iniciante
    --> Postador Iniciante


    Celular : 00000000
    Mensagens : 34
    Moedas : 2513
    Data de inscrição : 18/03/2018
    Idade : 20

    bCini8 - Trabalhando eficazmente/velozmente com arquivos locais Empty Re: bCini8 - Trabalhando eficazmente/velozmente com arquivos locais

    Mensagem por HelderPT Ter 9 Out 2018 - 18:13

    Salvamento bom, melhor que DOF2?
    Anonymous
    Convidado
    Convidado


    bCini8 - Trabalhando eficazmente/velozmente com arquivos locais Empty Re: bCini8 - Trabalhando eficazmente/velozmente com arquivos locais

    Mensagem por Convidado Dom 21 Out 2018 - 17:13

    ôtimo, Uso e recomendo! Velocidade de processamento bem mas rapido do que o DOF2 e DINI
    NTz_
    NTz_
    --> Postador Iniciante
    --> Postador Iniciante


    Zello : Scripter Iniciante
    Celular : 22991043626
    Mensagens : 9
    Moedas : 2355
    Data de inscrição : 05/07/2018
    Idade : 26

    bCini8 - Trabalhando eficazmente/velozmente com arquivos locais Empty Re: bCini8 - Trabalhando eficazmente/velozmente com arquivos locais

    Mensagem por NTz_ Ter 6 Nov 2018 - 1:03

    boa irei testar  Very Happy
    Stremmer_Scripter#0961
    Stremmer_Scripter#0961
    --> Postador Fanático
    --> Postador Fanático


    Celular : 17981120325
    Mensagens : 681
    Moedas : 3207
    Data de inscrição : 19/10/2019
    Idade : 29

    bCini8 - Trabalhando eficazmente/velozmente com arquivos locais Empty Re: bCini8 - Trabalhando eficazmente/velozmente com arquivos locais

    Mensagem por Stremmer_Scripter#0961 Sex 31 Dez 2021 - 18:21

    vou testar

    Conteúdo patrocinado


    bCini8 - Trabalhando eficazmente/velozmente com arquivos locais Empty Re: bCini8 - Trabalhando eficazmente/velozmente com arquivos locais

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Seg 25 Nov 2024 - 14:26