[Tutorial] Completo usando DFile
#1

Descriзгo:

Bom, estou aqui para ensinar quem ainda nгo sabe sobre como utilizar o dfile.
Pra quem nгo sabe o dfile й um gerenciador de arquivos, muitos chamam de database, cache enfim, a funзгo dele й intermediar entre o HD principal onde estгo as informaзхes atй o solicitante da informaзгo, em resumo com ele vocк poderб salvar informaзхes como nнvel de admin, textos, logs ou qualquer coisa do gкnero.

Funзхes:

Escrita e leitura:
► dfile_WriteInt(Tag, valor);
► dfile_WriteBool(Tag, true/false);
► dfile_WriteFloat(Tag, valor fracionado);
► dfile_WriteString(Tag, Texto);
► dfile_ReadInt(Tag);
► dfile_ReadBool(Tag);
► dfile_ReadFloat(Tag);
► dfile_ReadString(Tag);
► dfile_ReadPerseString(Tag, string);

Criaзгo e remoзгo:
► dfile_Create(Arquivo[]);
► dfile_Delete(Arquivo[]);
► dfile_CreateDirectory(Pasta[]);
► dfile_DeleteDirectory(Pasta[]);

Verificaзгo e outros:
► dfile_OpenFile(Arquivo);
► dfile_SaveFile();
► dfile_CloseFile();
► dfile_FileExists(Arquivo[]);
► dfile_DirectoryExists(Pasta[]);
► dfile_RenameFile(Arquivo[], NovoNome[]);
► dfile_IsSet(Tag);
► dfile_UnSet(Tag);

Como usar:

Bom, acima vocкs viram quais sгo as funcionalidades do dfile, aprenderemos agora como usa-las com exemplos.

A programaзгo em si segue uma lуgica muito bбsica, assim como no seu dia-a-dia na programaзгo vocк deve seguir etapas, exemplo.
Vocк quer setar um valor em um arquivo, antes vocк deverб verificar se ele existe, caso nгo exista vocк deverб cria-lo, nomea-lo, salva-lo e fecha-lo. Entгo, faremos isso.
Caso vocк tente escrever algo em um arquivo que nгo existe logicamente vocк nгo conseguirб.

► dfile_FileExists(Arquivo[]);
► dfile_OpenFile(Arquivo);
► dfile_SaveFile();
► dfile_CloseFile();

pawn Код:
if(dfile_FileExists("Progressгo.ini");
{
    dfile_Open("Progressгo.ini");
    //Funзхes de escrita
    SaveFile();
    CloseFile();
}
Explicaзгo:
Bom, com esses passos iremos verificar se o arquivo Progressгo.ini existe na scriptfiles usando o id(se) e o dfile_FileExists... caso ele exista, ele apуs a chave { serб aberto usando dfile_Open("Progressгo.ini"); Serб escrito algo nele(Vocк deverб usar a funзгo de escrita no lugar da anotaзгo), apуs isso serб salvo o arquivo e serб fechado.

Por que no SaveFile e Closefile nгo precisa do parametro(Arquivo)? Simples, porque a aзгo SaveFile e CloseFile sгo direcionadas ao arquivo aberto no momento... Diferente de Dini, o DFile abre apenas o arquivo necessбrio evitando assim muitas contas desnecessбrias por segundo.

► dfile_Create(Arquivo[]);
► dfile_WriteInt(Tag, valor);
► dfile_WriteBool(Tag, true/false);
► dfile_WriteFloat(Tag, valor fracionado);
► dfile_WriteString(Tag, Texto);

pawn Код:
if(!dfile_FileExists("Progressгo.ini"))//Verifica se NГO existe por causa do ! Exclamaзгo
    {
        dfile_Create("Progressгo.ini"); //Caso nгo exista ele criarб, pois estб entre as chaves
    }
    dfile_Open("Progressгo.ini");
    dfile_WriteInt("NumeroInteiro", 12345);     //Numeros inteiros, sem fraзгo
    dfile_WriteBool("VerdadeiroOuFalso", true); //Variбvel booleanea, true ou false = verdadeiro ou falso
    dfile_WriteFloat("NumeroFracionado", 1234.56789); //Numeros fracionados como coordenada de mapas, quantia de vida entre outros
    dfile_WriteString("TextoQualquer", "Progressгo Pawn, envolvendo jogadores revolucionando servidores"); //Qualquer tipo de texto
    dfile_SaveFile();
    dfile_CloseFile();
Explicaзгo:
Caso o arquivo "Progressгo.ini" nгo exista ele serб criado pois estб entre as chaves, apуs ele ser criado, serб aberto e entгo serб escrito escrito as informaзхes no arquivo, WriteInt serve pra escrever numeros inteiros sem fraзгo, й aceito numeros de 0 а 9(Claro, podendo ser juntos formando dezenas, centenas e assim por diante).
WriteBool salva valores booleaneos que sгo true/false verdadeiro/falso positivo/negativo.
WriteFloat salva valores fracionados como a coordenada X, Y, Z do mapa entre outras coisas.
WriteString Salva qualquer tipo de texto, sendo ele junto com nъmeros ou nгo, apenas nъmeros ou apenas letras, geralmente usado para salvar senhas/logs entre outras informaзхes.
Apуs escrever esses dados no arquivo ele serб salvo e fechado, й bom lembrar que caso vocк nгo salve este texto ao fechar o arquivo jб nгo serб mais possнvel ler os dados no arquivo.

► dfile_ReadInt(Tag);
► dfile_ReadBool(Tag);
► dfile_ReadFloat(Tag);
► dfile_ReadString(Tag);


pawn Код:
new varInt, Float:varFloat, bool:varBool, varString[128];
    if(dfile_FileExists("Progressгo.ini"))//Verifica se existeo arquivo
    {
        dfile_Open("Progressгo.ini");                //Caso exista serб aberto
        varInt = dfile_ReadInt("NumeroInteiro");     //O numero inteiro nesta tag serб escrito na varInt
        varBool = dfile_ReadBool("VerdadeiroOuFalso"); //O valor bool que estiver nesta tag serб escrito na varBool
        varFloat = dfile_ReadFloat("NumeroFracionado"); //O numero frбcionado que estiver nesta tag serб escrito na varFloat
        varString = dfile_ReadString("TextoQualquer"); //O texto que estiver nesta tag serб escrito na variбvel varString
        dfile_CloseFile(); //Fecharб o arquivo sem salvar pois vocк apenas fez leituras e nгo alterou nada
    }
Explicaзгo:
O script criarб as variбveis varInt, varFloat, varBool e varString cada uma com suas respectivas tags, caso o arquivo exista a varInt terб o valor da tag NumeroInteiro atribuнdo a ela. a varBool terб o valor da tag VerdadeiroOuFalso atribuнdo а ela, a varFloat terб o valor da tag NumeroFracionado atribuнdo а ela e a varString terб o texto na tag TextoQualquer atribuнdo а ela.
Vocк pode usar tambйm o dfile_ReadPerseString que compara uma string а tag.

► dfile_Create(Arquivo[]);
► dfile_Delete(Arquivo[]);
► dfile_CreateDirectory(Pasta[]);
► dfile_DeleteDirectory(Pasta[]);

pawn Код:
if(dfile_FileExists("Progressгo.ini"))
    {
        dfile_Delete("Progressгo.ini"); //Deleta o arquivo se existir
    }
    if(!dfile_FileExists("Progressгo.ini"))
    {
        dfile_Create("Progressгo.ini"); //Cria o arquivo se nгo existir
    }
   
    if(!dfile_DirectoryExists("ForumSamp"))
    {
        dfile_DCreateirectory("ForumSamp"); //Cria a pasta se nгo existir
    }
    if(dfile_DirectoryExists("ForumSamp"))
    {
        dfile_DeleteDirectory("ForumSamp"); //Deleta a pasta se existir
    }
Explicaзгo: Nas anotaзхes.


► dfile_RenameFile(Arquivo[], NovoNome[]);
► dfile_IsSet(Tag);
► dfile_UnSet(Tag);

pawn Код:
if(dfile_FileExists("Progressгo.ini"))
    {
        if(dfile_IsSet("Exemplo"); //Verifica se a TAG Exemplo tem algum valor
        {
            dfile_UnSet("Exemplo"); //Tira o valor da TAG Exemplo se existir
        }
        return 1;
    }
pawn Код:
dfile_RenameFile("Progressao.ini", "ProgressaoPawn.ini");
Explicaзгo:
Se o arquivo Progressгo.ini existir ele vai verificar se a tag 'Exemplo' tem algum valor setado usando dfile_IsSet e caso tenha um valor setado ele irб retirar este valor usando dfile_UnSet.

Crйditos - Todos direitos reservados а:
Код:
* Dfile 1.0.4
* All rights reserved! © By: Drake
*
* Owner: Drake
* Time: 01/27/2011
*
* This function may be freely distributed.
* And of course, free to use: D
* Thanks to:
* ChuckNorris - Testing, Help
* Fade - Testing, Help
* ****** - boolstr function
* JaTochNietDan - FileManager
*
* Special thanks to:
* Thiadmer - Pawn.
* SA: MP Team Past, Present, Future - SA: MP.
Tуpico oficial: https://sampforum.blast.hk/showthread.php?tid=218026

Download:


Reputation:
Reply
#2

Muito fodah em breve irei testar, good job
@First *-*
Reply
#3

bom tutorial
+reputaзгo
Reply
#4

Quote:
Originally Posted by BlueX
Посмотреть сообщение
Muito fodah em breve irei testar, good job
@First *-*
Valeu ^^
Vocк posta antes de ler o tutorial kk euri.

Quote:
Originally Posted by MiTToS
Посмотреть сообщение
bom tutorial
+reputaзгo
Valeu MiTToS ^^
Reply
#5

Otimo Tutorial parabens
Reply
#6

Muito Bom Josma.
Me ajudou muito *-*
Reply
#7

LooL vivendo e aprendendo com professor josma "O cheirador de nescau" kkkkk muito bom fiote. Ganho mai reputa
Reply
#8

EU li e gostei parabens gosma;brinks josma, explica bem.
Reply
#9

Bom tutorial cheirador de nescau .-.
Reply
#10

Quote:
Originally Posted by BrunoBSF
Посмотреть сообщение
Otimo Tutorial parabens
Obrigado.
Quote:
Originally Posted by iPauliinLegendary
Посмотреть сообщение
Muito Bom Josma.
Me ajudou muito *-*
A intenзгo й essa ^^
Quote:
Originally Posted by Y_Baby
Посмотреть сообщение
LooL vivendo e aprendendo com professor josma "O cheirador de nescau" kkkkk muito bom fiote. Ganho mai reputa
Valeu pelo rep... Vivendo e aprendendo kk.
Quote:
Originally Posted by Izaac Abreu
Посмотреть сообщение
EU li e gostei parabens gosma;brinks josma, explica bem.
Valeu =)
Quote:
Originally Posted by Shickcard
Посмотреть сообщение
Bom tutorial cheirador de nescau .-.
A moda agora й cheirar giz man.
Reply
#11

Muito bom o tutorial. Mas tem uma coisinha errada:
Quote:

► dfile_ReadInt(Tag);
► dfile_ReadBool(Tag);
► dfile_ReadFloat(Tag);
► dfile_ReadString(Tag);
Quote:

new varInt, Float:varFloat, bool:varBool, varString[128];
if(dfile_FileExists("Progressгo.ini"))//Verifica se existeo arquivo
{
dfile_Open("Progressгo.ini"); //Caso exista serб aberto
varInt = dfile_WriteInt("NumeroInteiro"); //O numero inteiro nesta tag serб escrito na varInt
varBool = dfile_WriteBool("VerdadeiroOuFalso"); //O valor bool que estiver nesta tag serб escrito na varBool
varFloat = dfile_WriteFloat("NumeroFracionado"); //O numero frбcionado que estiver nesta tag serб escrito na varFloat
varString = dfile_WriteString("TextoQualquer"); //O texto que estiver nesta tag serб escrito na variбvel varString
dfile_CloseFile(); //Fecharб o arquivo sem salvar pois vocк apenas fez leituras e nгo alterou nada
}

Eu consegui entender mesmo assim. Thx.
Reply
#12

otimo Josma Tem os "Dons"! kkkk vlw cara Continue assim.
Reply
#13

Quote:
Originally Posted by Kmatsu
Посмотреть сообщение
riariaria vocк concertou so que no final ainda estб errado...
Concertado =)
Quote:
Originally Posted by Cassiano
Посмотреть сообщение
Muito bom o tutorial. Mas tem uma coisinha errada:


Eu consegui entender mesmo assim. Thx.
Concertado, valeu nгo notei =)
Quote:
Originally Posted by Juninho_Oakley
Посмотреть сообщение
otimo Josma Tem os "Dons"! kkkk vlw cara Continue assim.
Continuar? Pretendo fazer melhor que isso
Valeu.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)