Fopen PT
From SA-MP Wiki
fopen
Nota: O nome desta função começa com uma letra minúscula. |
Descrição:
Abre um arquivo (para ler ou escrever também).
(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/) |
mode | O 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.
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.
- fclose: Fecha um arquivo.
- ftemp: Cria um arquivo temporário.
- fremove: Deleta um arquivo.
- fwrite: Escreve em um arquivo aberto.
- fread: Lê um arquivo.
- fputchar: Coloca um caractere dentro do arquivo.
- fgetchar: Pega um caractere de dentro do arquivo.
- fblockwrite: Escreve blocos de dados em um 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.