10925 - Comportamento da Função LerNL
Problema: Descrição do Problema: A função LerNL lê arquivos .txt com os caracteres especiais CR e CRLF
Rotina / Tela: Regras de qualquer Ferramenta Customizada.
Solução: Solução 10925: A função LerNl é incompatível com a junção dos caracteres especiais CR E CRLF, somente com o CR sem o CRLF.
Como a necessidade neste caso, é de ler linha a linha, e não o conteúdo inteiro do arquivo, sugerimos que adaptar a customização utilizando o exemplo da regra abaixo.
O exemplo da regra foi testada com o arquivo de exemplo enviado no chamado e funcionou corretamente.
Apenas para ressaltar, que esta regra foi desenvolvida com o intuito de ler arquivos de no máximo 100mb. Caso seja necessário ler mais que isso, basta alterar a quantidade de bytes na linha Ler(xManipuladorArquivo, xCorpo, 104857600);, que neste caso é 104857600.
Regra:
Definir alfa xArquivo;
Definir alfa xCorpo;
Definir alfa xLinha;
Definir numero xManipuladorArquivo;
Definir alfa x10;
Definir alfa x13;
Definir alfa x1310;
Definir alfa x131310;
CaracterParaAlfa(10,x10);
CaracterParaAlfa(13,x13);
x1310 = x13+x10;
xArquivo = c://teste//arquivo.txt;
xManipuladorArquivo = Abrir(xArquivo, Ler);
Ler(xManipuladorArquivo, xCorpo, 104857600);
Fechar(xManipuladorArquivo);
SubstAlfa(x10, x1310, xCorpo);
x131310 = x13+x13+x10;
SubstAlfa(x131310, x1310, xCorpo);
xManipuladorArquivo = Abrir(xArquivo, Gravar);
TamanhoAlfa(xCorpo, xTamanho);
Gravar(xManipuladorArquivo, xCorpo, xTamanho);
Fechar(xManipuladorArquivo);
xManipuladorArquivo = Abrir(xArquivo, LerNL);
x = 1;
Enquanto (x = 1)
x = LerNL(xManipuladorArquivo, xLinha);
Fechar(xManipuladorArquivo);
Observação: Trata-se de uma sugestão a regra, pois o correto é verificar a origem de geração dos arquivos texto.
O recomendado é que o arquivo .txt seja no padrão de arquivos texto Windows (com CRLF).
Rotina / Tela: Regras de qualquer Ferramenta Customizada.
Solução: Solução 10925: A função LerNl é incompatível com a junção dos caracteres especiais CR E CRLF, somente com o CR sem o CRLF.
Como a necessidade neste caso, é de ler linha a linha, e não o conteúdo inteiro do arquivo, sugerimos que adaptar a customização utilizando o exemplo da regra abaixo.
O exemplo da regra foi testada com o arquivo de exemplo enviado no chamado e funcionou corretamente.
Apenas para ressaltar, que esta regra foi desenvolvida com o intuito de ler arquivos de no máximo 100mb. Caso seja necessário ler mais que isso, basta alterar a quantidade de bytes na linha Ler(xManipuladorArquivo, xCorpo, 104857600);, que neste caso é 104857600.
Regra:
Definir alfa xArquivo;
Definir alfa xCorpo;
Definir alfa xLinha;
Definir numero xManipuladorArquivo;
Definir alfa x10;
Definir alfa x13;
Definir alfa x1310;
Definir alfa x131310;
CaracterParaAlfa(10,x10);
CaracterParaAlfa(13,x13);
x1310 = x13+x10;
xArquivo = c://teste//arquivo.txt;
xManipuladorArquivo = Abrir(xArquivo, Ler);
Ler(xManipuladorArquivo, xCorpo, 104857600);
Fechar(xManipuladorArquivo);
SubstAlfa(x10, x1310, xCorpo);
x131310 = x13+x13+x10;
SubstAlfa(x131310, x1310, xCorpo);
xManipuladorArquivo = Abrir(xArquivo, Gravar);
TamanhoAlfa(xCorpo, xTamanho);
Gravar(xManipuladorArquivo, xCorpo, xTamanho);
Fechar(xManipuladorArquivo);
xManipuladorArquivo = Abrir(xArquivo, LerNL);
x = 1;
Enquanto (x = 1)
x = LerNL(xManipuladorArquivo, xLinha);
Fechar(xManipuladorArquivo);
Observação: Trata-se de uma sugestão a regra, pois o correto é verificar a origem de geração dos arquivos texto.
O recomendado é que o arquivo .txt seja no padrão de arquivos texto Windows (com CRLF).