19.08.2011, 20:08
(
Последний раз редактировалось Josma_cmd; 29.08.2011 в 18:34.
)
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();
}
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();
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
}
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
}
► 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");
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.
Download: