Descrição
FT_FReadLn [AS]
Lê e retorna uma linha de texto do arquivo aberto pela função FT_FUse(). As linhas do texto, são delimitadas pela sequência de caracteres CRLF (chr(13)+chr(10)) ou apenas LF (chr(10)), e o tamanho máximo de cada linha é 1022 bytes .
|
Sintaxe
Parâmetros
| Par |
Nome |
Tipo |
Descrição |
Default |
Obg |
Ref |
Retorno
| Retorno |
Tipo |
Descrição |
| cRet |
Caracter
|
Retorna a linha inteira na qual está posicionado o ponteiro para leitura de dados
|
Exemplo
#INCLUDE "TOTVS.CH"
#INCLUDE "FILEIO.CH"
User Function FT_FReadLn()
Local cLine := ''
Local nHandle := 0
Local nLast := 0
Local nRecno := 0
nHandle := FT_FUse("C:\TEMP\TST.TXT")
If nHandle == -1 // Se houver erro de abertura abandona processamento
Return( Nil )
Endif
FT_FGoTop()// Posiciona na primeira linha
nLast := FT_FLastRec() // Retorna o número de linhas do arquivo
MsgAlert( cValtoChar( nLast ), 'UniversoADVPL' )
Do While !FT_FEOF()
cLine := FT_FReadLn() // Retorna a linha corrente
nRecno := FT_FRecno() // Retorna o recno da linha
MsgAlert( "Linha: " + cLine + " - Recno: " + StrZero(nRecno,3), 'UniversoADVPL' ) )
FT_FSKIP() // Pula para próxima linha
EndDo
FT_FUSE() // Fecha o arquivo
Return( Nil )
Resultado
Informações adicionais
|
A utilização desta função não altera a posição do ponteiro para leitura dos dados, pois o ponteiro do arquivo não é movido. No entanto, caso seja necessário alterar, utilize a função FT_FSkip().
|
|
O limite de 1022 bytes por linha inclui os caracteres delimitados de final de linha. Deste modo, quando utilizamos os separadores CRLF e LF, é possível ter 1020 bytes de texto (CRLF) ou 1021 bytes (LF). Porém, ao tentar realizar a leitura do arquivo, com linha de texto maior que o especificado, o resultado será de 1023 bytes e a incorreta identificação das posteriores quebras de linhas
|
|
As funções FT_F* foram desenvolvidas para lerem arquivos com o conteúdo apenas texto. Ao utilizar em arquivos binários, o comportamento pode ser inesperado na movimentação do ponteiro de leitura e na identificação dos separadores de final de linha
|
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎