Advertisement
BlackCoder

RocksFile

Mar 10th, 2012
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.00 KB | None | 0 0
  1. /*                         INCLUDE CRIADA POR Ivan - BlackCoder
  2.                       TODOS OS DIREITOS RESERVADOS A EQUIPE ROCKSGAMES
  3. */
  4.  
  5. #include <a_samp>
  6.  
  7. #define MAX_ARQUIVOS 600
  8.  
  9. /*native RocksFile_Existe(diretorio[]);
  10. native RocksFile_Excluir(diretorio[]);
  11. native RocksFile_Criar(diretorio[]);
  12. native RocksFile_Carregar(nomearquivo[],diretorio[]);
  13. native RocksFile_Escrever(nomearquivo[],chave[],escrita[]);
  14. native RocksFile_EscreverInteiro(nomearquivo[],chave[],escrita[]);
  15. native RocksFile_EscreverFloat(nomearquivo[],chave[],escrita[]);
  16. native RocksFile_Ler(nomearquivo[],chave[]);
  17. native RocksFile_LerInteiro(nomearquivo[],chave[]);
  18. native RocksFile_LerFloat(nomearquivo[],chave[]);
  19. native RocksFile_Salvar(nomearquivo[]);
  20. native RocksFile_Fechar(nomearquivo[]);
  21. */
  22.  
  23.  
  24. enum ficheiros
  25. {
  26.     fNome[50],
  27.     fDiretorio[50],
  28.     fEscrita[60],
  29. }
  30. new Ficheiro[600][ficheiros];
  31.  
  32.  
  33. stock RocksFile_Existe(filename[])
  34. {
  35.     if(fexist(filename))return true;
  36.     return false;
  37. }
  38.  
  39. stock RocksFile_Excluir(filename[])
  40. {
  41.     if(!fexist(filename))return false;
  42.     fremove(filename);
  43.     return true;
  44. }
  45.  
  46. stock RocksFile_Criar(filename[])
  47. {
  48.     new File:fhnd;
  49.     if(fexist(filename)) return false;
  50.     fhnd=fopen(filename,io_write);
  51.     fclose(fhnd);
  52.     return true;
  53. }
  54. stock RocksFile_Carregar(nomearquivo[],diretorio[])
  55. {
  56.     new File:arquivo;
  57.     arquivo = fopen(diretorio,io_read);
  58.     new string[3000],atual[200];
  59.     while(fread(arquivo,atual))
  60.     {
  61.         format(string,3000,"%s%s",string,atual);
  62.     }
  63.     fclose(arquivo);
  64.     new carregado = false;
  65.     for(new i; i < sizeof(Ficheiro); i++)
  66.     {
  67.         if(strcmp(Ficheiro[i][fNome],nomearquivo,true,sizeof(Ficheiro)) == 0)
  68.         {
  69.             format(Ficheiro[i][fNome],50,"%s",nomearquivo);
  70.             format(Ficheiro[i][fDiretorio],50,"%s",diretorio);
  71.             format(Ficheiro[i][fEscrita],sizeof(Ficheiro),"%s",string);
  72.             carregado = true;
  73.             break;
  74.         }
  75.     }
  76.     if(!carregado)
  77.     {
  78.         for(new i; i<sizeof(Ficheiro); i++)
  79.         {
  80.             if(strcmp(Ficheiro[i][fNome],"",true) == 0)
  81.             {
  82.                 format(Ficheiro[i][fNome],50,"%s",nomearquivo);
  83.                 format(Ficheiro[i][fDiretorio],50,"%s",diretorio);
  84.                 RocksFile_Carregar(nomearquivo,diretorio);
  85.                 break;
  86.             }
  87.         }
  88.     }
  89.     return 1;
  90. }
  91.  
  92. stock RocksFile_Escrever(nomearquivo[],chave[],escrita[])
  93. {
  94.     new carregado = false;
  95.     for(new i; i<sizeof(Ficheiro); i++)
  96.     {
  97.         if(strcmp(Ficheiro[i][fNome],nomearquivo,true,sizeof(Ficheiro)) == 0)
  98.         {
  99.             carregado = true;
  100.             new fchave[51];
  101.             format(fchave,51,"%s=",chave);
  102.             if(strfind(Ficheiro[i][fEscrita],fchave,false) == -1)
  103.             {
  104.                 format(Ficheiro[i][fEscrita],sizeof(Ficheiro),"%s%s%s\r\n",Ficheiro[i][fEscrita],fchave,escrita);
  105.                 break;
  106.             }
  107.             else
  108.             {
  109.                 strdel(Ficheiro[i][fEscrita],strfind(Ficheiro[i][fEscrita],fchave,false)+strlen(fchave),strfind(Ficheiro[i][fEscrita],"\r\n",false,strfind(Ficheiro[i][fEscrita],fchave,false)));
  110.                 strins(Ficheiro[i][fEscrita],escrita,strfind(Ficheiro[i][fEscrita],fchave,false)+strlen(fchave),5000);
  111.                 break;
  112.  
  113.             }
  114.         }
  115.     }
  116.     if(!carregado){printf("[ERRO] RocksFile:O arquivo de nome %s nao foi carregado",nomearquivo);}
  117.     return 0;
  118. }
  119.  
  120. stock RocksFile_Salvar(nomearquivo[])
  121. {
  122.     for(new i; i<sizeof(Ficheiro); i++)
  123.     {
  124.         if(strcmp(Ficheiro[i][fNome],nomearquivo,true,sizeof(Ficheiro)) == 0)
  125.         {
  126.             new File:arquivo;
  127.             arquivo = fopen(Ficheiro[i][fDiretorio],io_write);
  128.             if(!arquivo)
  129.             {
  130.                 printf("RocksFile: O diretorio %s não foi encontrado.",Ficheiro[i][fDiretorio]);
  131.                 return 1;
  132.             }
  133.             fwrite(arquivo,Ficheiro[i][fEscrita]);
  134.             fclose(arquivo);
  135.             break;
  136.         }
  137.     }
  138.     return 1;
  139. }
  140. stock RocksFile_LerInteiro(nomearquivo[],chave[])
  141. {
  142.     return strval(RocksFile_Ler(nomearquivo,chave));
  143. }
  144. stock RocksFile_LerFloat(nomearquivo[],chave[])
  145. {
  146.     new Float:floats;
  147.     format(floats,20,"%f",floatstr(RocksFile_Ler(nomearquivo,chave));
  148.     return floats;
  149. }
  150. stock RocksFile_EscreverInteiro(nomearquivo[],chave[],escrita)
  151. {
  152.     new volta[20];
  153.     format(volta,20,"%d",escrita);
  154.     return RocksFile_Escrever(nomearquivo,chave,volta);
  155. }
  156. stock RocksFile_EscreverFloat(nomearquivo[],chave[],Float:escrita)
  157. {
  158.     new volta[20];
  159.     format(volta,20,"%f",escrita);
  160.     return RocksFile_Escrever(nomearquivo,chave,volta);
  161. }
  162.  
  163. stock RocksFile_Fechar(nomearquivo[])
  164. {
  165.     new fechado;
  166.     for(new i; i<sizeof(Ficheiro); i++)
  167.     {
  168.         if(strcmp(Ficheiro[i][fNome],nomearquivo,false,sizeof(Ficheiro)) == 0)
  169.         {
  170.             fechado = true;
  171.             format(Ficheiro[i][fNome],0,"");
  172.             format(Ficheiro[i][fDiretorio],0,"");
  173.             format(Ficheiro[i][fEscrita],0,"");
  174.             break;
  175.         }
  176.     }
  177.     if(!fechado)
  178.     {
  179.         printf("RocksFile: Nenhum arquivo foi aberto com o nome %s para ser fechado.",nomearquivo);
  180.         return 0;
  181.     }
  182.     return 1;
  183. }
  184.  
  185. stock RocksFile_Ler(nomearquivo[],chave[])
  186. {
  187.     new carregado = false;
  188.     new retorno[500];
  189.     for(new i; i<sizeof(Ficheiro); i++)
  190.     {
  191.         if(strcmp(Ficheiro[i][fNome],nomearquivo,true,sizeof(Ficheiro)) == 0)
  192.         {
  193.             carregado = true;
  194.             new fchave[51];
  195.             format(fchave,51,"%s=",chave);
  196.             if(strfind(Ficheiro[i][fEscrita],fchave,false) != -1)
  197.             {
  198.                 new posicao = strfind(Ficheiro[i][fEscrita],fchave,false)+strlen(fchave);
  199.                 strmid(retorno,Ficheiro[i][fEscrita],posicao,strfind(Ficheiro[i][fEscrita],"\r\n",false,posicao));
  200.                 break;
  201.             }
  202.         }
  203.     }
  204.     if(!carregado)printf("RocksFile: O arquivo de nome %s nao foi carregado",nomearquivo);
  205.     return retorno;
  206. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement