Fopen PT

From SA-MP Wiki

Jump to: navigation, search

fopen

Image:Farm-Fresh text lowercase.png Nota: O nome desta função começa com uma letra minúscula.


Descrição:

Abre um arquivo (para ler ou escrever também).


Parâmetros:
(name[], filemode:mode = io_readwrite)
name[]O caminho para o arquivo (se só o nome do arquivo for especificado o arquivo será aberto na pasta scriptfiles/)
modeO modo em que o arquivo vai ser aberto (padrão: io_readwrite).


Valores de retorno:

Retorna o identificador do arquivo que é usado para leitura e escrita. Retorna 0 se houver algum erro.


Image:32px-Circle-style-warning.png

Nota
Importante

Esta função não pode acessar arquivos fora da pasta 'scriptfiles'!


Image:32px-Circle-style-warning.png

Aviso

Se for usado io_read e o arquivo não existir, irá retornar um identificador nulo. Usando identificadores nulos nas funções para arquivos o servidor irá crashar!


Modes

io_read      Abre um arquivo somente para leitura.
io_write     Escreve em um arquivo, caso não exista tenta criar. Todo o conteúdo do arquivo é apagado ao abrir.
io_readwrite Abre para leitura e escrita, tenta criar caso o arquivo não exista.
io_append    Abre somente para escrita, tenta criar caso o arquivo não exista, ao escrever o conteúdo é adicionado no final do arquivo.

Exemplo de uso:

// Abre o arquivo 'file.txt' em modo de leitura.
new File:handle = fopen("file.txt", io_read),
// Declara a array 'buf' que irá armazenar os caracteres de cada linha do arquivo.
buf[128];
 
// Verifica se o arquivo retornou um identificador válido.
if(handle)
{
    // O identificador é válido
 
    // Lê todo o arquivo e imprime cada linha no console
    while(fread(handle, buf)) print(buf);
 
    // Fecha o arquivo
    fclose(handle);
}
else
{
    // O identificador é inválido
    print("O arquivo \"file.txt\" não existe, ou não pode ser aberto.");
}


// Abre o arquivo 'file.txt' em modo de escrita.
new File:handle = fopen("file.txt", io_write);
 
// Verifica se o identificador é válido
if(handle)
{
    // O arquivo foi aberto
 
    // Escreve "Hello World!" no arquivo
    fwrite(handle, "Hello World!");
 
    // Fecha o arquivo
    fclose(handle);
}
else
{
    // O identificador é inválido
    print("Falha ao tentar abrir o arquivo \"file.txt\".");
}
// Abre o arquivo 'fiule.txt' em modo de leitura e escrita.
new File:handle = fopen("file.txt"),
 
    // Declara a array 'buf' para ser usada na leitura.
    buf[128];
 
// Verifica se o identificador é válido.
if(handle)
{
    // O identificador é válido
 
    // Lê o arquivo inteiro e imprime suas linhas no console.
    while(fread(handle, buf)) print(buf);
 
    // Seta o ponteiro do arquivo para o primeiro byte.
    fseek(handle, _, seek_begin);
 
    // Escreve "Hello World!" dentro do arquivo.
    fwrite(handle, "Hello World!");
 
    // Fecha o arquivo.
    fclose(handle);
}
else
{
    // O identificador é inválido.
    print("O arquivo \"file.txt\" não existe, ou não pode ser aberto.");
}
// Abre o arquivo 'file.txt' no modo 'append' (somente escrita, adiciona o novo conteúdo no final do arquivo)
new File:handle = fopen("file.txt", io_append);
 
// Verifica se o identificador é válido
if(handle)
{
    // O identificador é válido
 
    // Adiciona no final do arquivo "Hello World!\r\n"
    fwrite(handle, "Hello World!\r\n");
 
    // Fecha o arquivo
    fclose(handle);
}
else
{
    // O identificador é inválido
    // O arquivo não existe e não foi possível criar um novo.
    print("Falha ao tentar abrir o arquivo \"file.txt\".");
}

Funções Relacionadas

As seguintes funções podem ser úteis, pois estão de alguma forma, relacionadas a esta função.


  • fopen: Abre um arquivo.
  • ftemp: Cria um arquivo temporário.
  • fwrite: Escreve em um arquivo aberto.
  • fputchar: Coloca um caractere dentro do arquivo.
  • fgetchar: Pega um caractere de dentro do arquivo.
  • fblockread: Lê blocos de dados de dentro de um arquivo.
  • fseek: Pula para uma determinada posição no arquivo.
  • flength: Pega o tamanho de um arquivo.
  • fexist: Verifica se um arquivo existe.
  • fmatch: Verifica se os padrões com um nome de arquivo correspondem.
Personal tools
Navigation
Toolbox