Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Author: Bruno da Silva
- * www.ips-team.blogspot.com
- * Set and Get line of File
- */
- #if !defined INVALID_LINE_ID
- #define INVALID_LINE_ID ~0xff
- #endif
- #if !defined MAX_LINE
- #define MAX_LINE 64
- #endif
- getLine(player[], line)
- {
- // declarar variáveis a ser usadas no código
- new
- linhaAtual,
- string[MAX_LINE],
- File:arquivo = fopen(player, io_read)
- ;
- // ler linhas do arquivo, caso linha atual for igual a line, para loop
- while(fread(arquivo, string))
- {
- if(linhaAtual == line) break;
- ++linhaAtual;
- }
- if(linhaAtual != line) return string[0] = EOS, string;
- fclose(arquivo);
- // retornar linha obtida
- return string[strlen(string)-2] = EOS, string;
- }
- setLine(player[], line, buffer[])
- {
- // declarar variáveis a ser usadas no código
- new
- linhaAtual = -1,
- data[MAX_LINE],
- string[MAX_LINE],
- bool: encontrouLinha;
- // formatar futura linha para dar quebra de linha
- format(data, MAX_LINE, #%s\r\n, buffer);
- // caso arquivo não existir, cria-lo com a nova linha
- if (!fexist(player))
- {
- new File: arquivoOrigem = fopen(player, io_write);
- fwrite(arquivoOrigem, data);
- return fclose(arquivoOrigem);
- }
- // passar todo arquivo original para o temporario, tirando a linha para retirar
- new File: arquivoOrigem = fopen(player, io_read);
- new File: arquivoTemporario = fopen("tmpfile.tmp", io_write);
- while (fread(arquivoOrigem, string))
- {
- if (++linhaAtual != line)
- {
- fwrite(arquivoTemporario, string);
- }
- else
- {
- encontrouLinha = true;
- fwrite(arquivoTemporario, data);
- }
- }
- fclose(arquivoOrigem);
- fclose(arquivoTemporario);
- // caso não encontrar a linha, escrever nova linha no arquivo
- if (!encontrouLinha)
- {
- arquivoOrigem = fopen(player, io_append);
- fwrite(arquivoOrigem, data);
- return fclose(arquivoOrigem);
- }
- // pegar do arquivo temporario para arquivo original
- arquivoOrigem = fopen(player, io_write);
- arquivoTemporario = fopen("tmpfile.tmp", io_read);
- while (fread(arquivoTemporario, string))
- {
- fwrite(arquivoOrigem, string);
- }
- fclose(arquivoOrigem);
- fclose(arquivoTemporario);
- return fremove("tmpfile.tmp");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement