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.
- 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.