FileReadEx (FileRead)

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:

Argumento Obrigatório Descrição
file# Sim O número do arquivo que será lido.
Blob ou String Sim Nome da variável que receberá o conteúdo lido
length Não Nos 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.

The following two tabs change content below.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
Posted in Dev, PowerBuilder and tagged , , , , .