File Functions [PT-BR] -
F1N4L - 13.05.2016
Esse tutorial й voltado para quem quer aprender ou tem curiosidade de mexer com arquivos atravйs da linguagem Pawn, deixando claro que irei me basear nas principais funзхes, аs quais sгo indispensбveis.
Eu vou trabalhar a maior parte do Tutorial com exemplos, pois a intenзгo й TIRAR dъvidas e nгo AUMENTБ-LAS!
Primeiramente, vamos verificar se um arquivo existe?
fexist:
* Verifica se um determinado existe.
Com diretуrio padrгo -
scriptfiles
Код:
if(fexist("ForumSamp.ini"))
ForumSamp = Nome do arquivo.
.ini = extenзгo de arquivo.
Com diretуrio padrгo -
scriptfiles:
Код:
if(fexist("ForumSamp.ini"))
{
// Caso exista, imprime no console a msg abaixo
print("Arquivo existe");
}
else
{
// Caso NГO exista, imprime no console a msg abaixo
print("Arquivo nгo existe");
}
Com outro diretуrio:
Код:
if(fexist("ContasDoForum/ForumSamp.ini"))
ContasDoForum = Pasta.
ForumSamp = Nome do arquivo.
.ini = Extenзгo de arquivo.
OBS: Lembrando que essa funзгo nгo faz leitura de caracteres especiais, portanto, nгo insira acentos em arquivos!
fopen:
* Abre determinado arquivo com ou sem parвmetros adicionais [
MODO: ler / escrever / adicionar / ler & escrever].
Para criar e definir um valor а uma variбvel de arquivos, cuja funзгo й abrir um arquivo, utiliza-se:
io_read: [MODO LER]
Deixa o arquivo especificado suscetнvel а leitura.
Код:
fopen("ForumSamp.ini", io_read);
io_write: [MODO ESCREVER]
Deixa o arquivo especificado suscetнvel а escrita.
Код:
fopen("ForumSamp.ini", io_write);
io_append: [MODO ADICIONAR]
Deixa o arquivo especificado suscetнvel а escrita.
Код:
fopen("ForumSamp.ini", io_append);
io_readwrite: [MODO LER & ESCREVER]
Deixa o arquivo especificado suscetнvel а leitura e escrita.
Код:
fopen("ForumSamp.ini", io_readwrite);
Observaзхes dessa funзгo:
Nгo ocasiona crash independente da existкncia de um determinado arquivo, simplesmente abre e prepara determinado arquivo para o modo especificado.
Os crash's resultantes da existкncia de um determinado arquivo estгo relacionados аs funзхes derivadas dos modos: ler, escrever, adicionar e ler & escrever.
fclose:
* Fecha determinado arquivo.
OBS: Lembre-se sempre de fechar o arquivo apуs ter concluнdo alguma aзгo com o mesmo.
Nesse exemplo abaixo deixei claro que o que deve ser fechado й a funзгo que abriu o arquivo (fopen).
Код:
fclose(fopen("ForumSamp.ini"));
Lendo um arquivo:
* Essa funзгo й exclusiva para leitura do arquivo e nгo gera qualquer alteraзгo no mesmo.
Exemplo №: Fiz um loop de 50 voltas, ou seja, vai ser lido 50 linhas em um determinado arquivo e serб impresso no console cada linha.
OBS: Se o arquivo nгo existir o servidor tomarб crash!
Utilizamos um loop para getar os valores de todas as linhas!
Код:
new
File:Arquivo, //Definimos a Variбvel Arquivo
String[100] // Definimos a Variбvel String e nela serб inserido cada linha e deverб conter, no mбximo, 100 caracteres por linha.
;
Arquivo = fopen("ForumSamp.ini", io_read); // Abrimos o arquivo e definimos seu modo para READ [ LER ]
for(new i = 0; i < 50; i ++)
{
fread(Arquivo, String);
printf(String);
}
fclose(Arquivo); // LEMBRE-SE DE FECHAR O ARQUIVO
Exemplo І: Fiz um loop que darб a quantia de voltas NECESSБRIAS, conforme a quantidade de linhas sem precisar especificar o nъmero de voltas.
Код:
new
File:Arquivo, //Definimos a Variбvel Arquivo
String[100], // Definimos a Variбvel String e nela serб inserido cada linha e deverб conter, no mбximo, 100 caracteres por linha.
;
Arquivo = fopen("ForumSamp.ini", io_read); // Abrimos o arquivo e definimos seu modo para READ [ LER ]
for(new i = 0; i < fread(Arquivo, String); i ++)
{
printf(String);
}
fclose(Arquivo); // LEMBRE-SE DE FECHAR O ARQUIVO
Escrevendo em um arquivo:
* Esta funзгo apaga quaisquer informaзхes contidas no arquivo e substitui o mesmo com as novas informaзхes. (Quebra de linha nгo funciona nesse caso)
OBS: Diferente de io_read, o arquivo й criado se ainda nгo existir, PORЙM, se o arquivo for criado em um diretуrio diferente de scriptfiles e o mesmo nгo existir, o servidor tomarб crash.
OBS І: Independente se adicionar os parвmetros para quebra de linha nгo funcionarб, pois, o arquivo terб suas informaзхes anteriores resetadas e serб adicionado novas informaзхes no mesmo.
Код:
new
File:Arquivo //Definimos a Variбvel Arquivo
;
Arquivo = fopen("ForumSamp.ini", io_write); // Abrimos o arquivo e definimos seu modo para WRITE [ ESCREVER ]
fwrite(Arquivo, "Hello World!!!"); // Mensagem que serб escrita em arquivo
fclose(Arquivo); // LEMBRE-SE DE FECHAR O ARQUIVO
Adicionando em um arquivo:
* Essa funзгo nгo altera os dados anteriores do arquivo, somente adiciona mais informaзхes dentro do mesmo.
OBS: Diferente de
io_read, o arquivo й criado se ainda nгo existir, PORЙM, se o arquivo for criado em um diretуrio diferente de scriptfiles e o mesmo nгo existir, o servidor tomarб crash, exatamente igual o caso de
io_write.
\r\n = Quebra de linha em arquivos de texto.
Код:
new
File:Arquivo //Definimos a Variбvel Arquivo
;
Arquivo = fopen("ForumSamp.ini", io_append); // Abrimos o arquivo e definimos seu modo para APPEND [ ADICIONAR ]
fwrite(Arquivo, "Hello World!!!\r\n"); // Mensagem que serб escrita em arquivo, juntamente com a quebra de linha.
fclose(Arquivo); // LEMBRE-SE DE FECHAR O ARQUIVO
Lendo e Escrevendo em um arquivo:
* Essa funзгo lк e escreve dentro de um arquivo. Funзгo
io_write +
io_read +
io_append.
Semelhanзa com
io_read: Faz a leitura do arquivo.
Semelhanзa com
io_write: Escreve no arquivo.
Semelhanзa com
io_append: Escrever informaзхes dentro do arquivo e (opcionalmente) mantem os dados anteriores.
Precisamos criar um loop, pois esse loop farб a leitura de um arquivo e respectivamente irб escrever dentro do mesmo, assim como
io_append.
Код:
new
File:Arquivo, //Definimos a Variбvel Arquivo
String[100] // Definimos a Variбvel String e nela serб inserido cada linha e deverб conter, no mбximo, 100 caracteres por linha.
;
Arquivo = fopen("ForumSamp.ini", io_readwrite); // Abrimos o arquivo e definimos seu modo para READWRITE [ LER & ESCREVER ]
for(new i = 0; i < 50; i ++)
{
fread(Arquivo, String);
printf(String);
}
fwrite(Arquivo, "Hello World!!!\r\n"); // Msg com quebra de linha
fclose(Arquivo); // LEMBRE-SE DE FECHAR O ARQUIVO
Alternando entre os modos:
Podemos utilizar mais modos em uma mesma funзгo:
Код:
new
File:Arquivo, //Definimos a Variбvel Arquivo.
String[100] // Definimos a Variбvel String e nela serб inserido cada linha e deverб conter, no mбximo, 100 caracteres por linha.
;
Arquivo = fopen("ForumSamp.ini", io_append); // Abrimos o arquivo e definimos seu modo para APPEND [ ADICIONAR ]
fwrite(Arquivo, "Adicionar\r\n");
fclose(Arquivo); // LEMBRE-SE DE FECHAR O ARQUIVO
Arquivo = fopen("ForumSamp.ini", io_read); // Abrimos o arquivo e definimos seu modo para READ [ LER ]
for(new i = 0; i < 50; i ++)
{
fread(Arquivo, String);
printf(String);
}
fclose(Arquivo); // LEMBRE-SE DE FECHAR O ARQUIVO
Vк-se que abri o arquivo e apуs a execuзгo da minha funзгo, o arquivo foi fechado. Utilizei fclose 2x apуs abrir o arquivo tambйm 2x.
P.S: Se alguйm quiser complementar o tutorial, fique а vontade.
Re: File Functions [PT-BR] -
Jimmmy - 13.05.2016
Belo tutorial
Re: File Functions [PT-BR] -
F1N4L - 13.05.2016
Quote:
Originally Posted by Jimmmy
Belo tutorial
|
Thx!
Re: File Functions [PT-BR] -
Coringa_Vilao - 13.05.2016
Parabйns , уtimo tutorial.
Re: File Functions [PT-BR] -
F1N4L - 13.05.2016
Quote:
Originally Posted by Coringa_Vilao
Parabйns , уtimo tutorial.
|
Vlw, @Coringa_Vilao!
Re: File Functions [PT-BR] -
Ever_SH - 13.05.2016
Bem explicado, Parabйns!
Re: File Functions [PT-BR] -
F1N4L - 13.05.2016
Quote:
Originally Posted by Ever_SH
Bem explicado, Parabйns!
|
Vlw, @Ever_SH!
Re: File Functions [PT-BR] -
bruxo00 - 13.05.2016
Ficou excelente!
Re: File Functions [PT-BR] -
F1N4L - 13.05.2016
Quote:
Originally Posted by bruxo00
Ficou excelente!
|
Obg, @bruxo00!
Re: File Functions [PT-BR] -
PainNagato - 13.05.2016
Уtimo tutorial reputado+