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.
- 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;
- 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!
- 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;
- 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.
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022
Pingback: Lendo arquivos grandes (32765+ bytes) com FileReadEx – Raccoon Ninja
Pingback: FileLength64 (FileLength) – Raccoon Ninja