FileReadEx (FileRead)

FileReadEx (FileRead)

Overview

Bem-vindo à nossa jornada pelo universo da programação com PowerBuilder! Hoje, vamos mergulhar na função FileReadEx, uma ferramenta essencial, mas muitas vezes subestimada, para a leitura de arquivos. Aprenderemos não apenas a sua sintaxe e retorno, mas também seus detalhes e como utilizá-la em exemplos práticos. Então, ajuste seus cintos de segurança, prepare-se para absorver conhecimentos valiosos e, quem sabe, revolucionar a maneira como você lida com arquivos em suas aplicações.

Lê dados do arquivo associado com o número de arquivo especificado, que foi designado para o arquivo com a função FileOpen.

Atenção! A função FileRead está obsoleta. Utilize esta função em seu lugar.

Sintaxe:

FileReadEx(file#, blob {, length})
FileReadEx(file#, string)

Retorno:

  • Long positivo diferente de zero indicando a quantidade de bytes que foram lidos;
  • -100 se a marcação do final do arquivo (EOF) for alcançada antes de ler qualquer coisa;
  • 0 (zero) se o arquivo for aberto com LineMode! e for encontrado uma quebra de linha (CR ou LF) antes que algo possa ser lido;
  • -1 se um erro ocorrer ou se você tentar ler uma string com o arquivo aberto com StreamMode!;
  • Null se o arquivo informado no argumento filename for nulo.

Destalhes sobre a função!

Appeon: Função suportada. No PowerBuilder, o caminho relativo aponta para o diretório da aplicação, mas no Appeon o caminho relativo aponta para o diretório do Desktop do Usuário.

  1. A marcação de final de arquivo (EOF) é um caractere nulo (ASCII valor zero). Sendo assim, se a função encontrar um caractere com este valor, irá parar de ler o arquivo, pois irá considerar que chegou ao final do arquivo;
  2. Se o arquivo estiver com codificação em ANSI ou UTF-8…
    • Se for lido em string: FileReadEx converte o texto Unicode antes de guardá-lo na variável string. O Byte-0rder mark (BOM) não é gravado na string.
    • Se for lido em Blob: FileReadEx salva o conteúdo do arquivo sem nenhuma conversão. O BOM não é gravado no blob no TextMode!, mas está escrito para o blob no StreamMode!
  3. Se o arquivo for aberto em LineMode!, a função FileReadEx irá ler o arquivo até encontrar os caracteres de quebra de linha. Quando encontrar, irá armazenar todo este conteúdo na variável (exceto pela quebra de linha) e passar para a próxima linha;
  4. O parâmetro length se aplica apenas para Blob! Utiliza-lo com string causará erros de compilação.;

Como utilizar:

Exemplo 01:

long ll_fileNum, ll_ret
string ls_line

//Abrindo um arquivo com as opções padrão.
ll_fileNum = FileOpen("lista.txt")

//Lendo o arquivo...
ll_ret = FileReadEx(ll_fileNum, ls_line)

Exemplo 02:

long ll_fileNum, ll_ret
blob lbl_content

//Abrindo um arquivo com as opções padrão.
ll_fileNum = FileOpen("lista.txt", SteamMode!)

//Lendo o arquivo...
ll_ret = FileReadEx(ll_fileNum, lbl_content)

Argumentos:

ArgumentoObrigatórioDescrição
file#SimO número do arquivo que será lido.
Blob ou StringSimNome da variável que receberá o conteúdo lido
lengthNãoNos modos TextMode! ou StreamMode!, este número representa a quantidade de bytes que serão recuperados do arquivo. O valor padrão é o tamanho do arquivo.

Referência:

Dúvidas sobre o artigo? Sugestões? Precisa de ajuda com outra funcionalidade do PowerBuilder? Deixe um comentário.