Como saber quantas linhas tem um txt?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Como saber quantas linhas tem um txt?

Mensagem por Adalberto »

Bom dia de Deus a vocês
Necessito saber o tamanho, em linhas, de um arquivo .txt, ¿sabes de alguma função pra fazer isso?, Por favor, comparte comigo, muito obrigado.
Um grande abraço
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Como saber quantas linhas tem um txt?

Mensagem por Pablo César »

Oi Adalberto,

Se no seu arquivo, o tamanho (em colunas) de cada linha for SEMPRE igual, você pode utilizar o MLCOUNT(), senão você vai precisar abiri em baixo nível com FOPEN() e varrer o arquivo localizando o chr(10)+chr(13), mais precisamente conhecido como LF.

Veja um exemplo com MEMOREAD e lendo o LF do exemplo do Maligno: viewtopic.php?f=1&t=6251&p=29317#p29317

Obs.: Engraçado, que neste preciso momento estava eu precisando de uma função assim. Mais do que nunca: acredito que ajudar aos outros é ajudar a si mesmo, também ! hihihi
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
SandroBelarmino
Usuário Nível 3
Usuário Nível 3
Mensagens: 464
Registrado em: 04 Set 2007 16:11
Localização: Pedreira-SP

Re: Como saber quantas linhas tem um txt?

Mensagem por SandroBelarmino »

Uma outra forma é criar um dbf apenas com um campo caracter no tamanha da maior linha do arquivo texto e fazer um append from sdf para esse dbf. Como cada linha vai gerar um registros o numero de linhas será igual à quantidade de registros no arquivo.

Abraços.
Alessandro R Belarmino
Clipper 5.2e - Blinker 7 - DBFNTX / DBFCDX
"Quem trabalha muito erra muito, quem trabalha pouco erra pouco, quem não trabalha não erra e quem não erra é promovido !!!!"
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Como saber quantas linhas tem um txt?

Mensagem por Maligno »

SandroBelarmino escreveu:Uma outra forma é criar um dbf apenas com um campo caracter no tamanha da maior linha do arquivo texto e ...
Como descobrir qual é a maior linha de um arquivo texto, sem lê-lo?
Como cada linha vai gerar um registros o numero de linhas será igual à quantidade de registros no arquivo.
Não seria muito pra tão pouco? É só abrir o arquivo e contar os pares CR/LF.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
SandroBelarmino
Usuário Nível 3
Usuário Nível 3
Mensagens: 464
Registrado em: 04 Set 2007 16:11
Localização: Pedreira-SP

Re: Como saber quantas linhas tem um txt?

Mensagem por SandroBelarmino »

Maligno escreveu:Como descobrir qual é a maior linha de um arquivo texto, sem lê-lo?
É, nesse caso fica um pouco (entenda-se bastante) difícil.... , não pensei na hipótese de não ter essa informação. Mas é um recurso que dá pra ser usado no caso de conhecer o arquivo texto, e que eu particularmente uso bastante, principalmente para ler arquivos de retorno de banco, que são arquivos que sempre terão um tamanho de linha específico.

De qualquer forma valeu.

Abraços.
Alessandro R Belarmino
Clipper 5.2e - Blinker 7 - DBFNTX / DBFCDX
"Quem trabalha muito erra muito, quem trabalha pouco erra pouco, quem não trabalha não erra e quem não erra é promovido !!!!"
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Re: Como saber quantas linhas tem um txt?

Mensagem por Adalberto »

Pablo, Sandro e maligno.

Fico agradecido com vocês pela ajuda oportuna que me distes.

Um grande abraço.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Como saber quantas linhas tem um txt?

Mensagem por Maligno »

sandrobelarmino escreveu:eu particularmente uso bastante, principalmente para ler arquivos de retorno de banco, que são arquivos que sempre terão um tamanho de linha específico.
Quando sobrar um tempo (tá meio difícil ultimamente), vou disponibilizar meus fontes de tratamento de texto, onde se pode acessar as linhas individuais, como se fosse um DBF. Algumass funções:

Código: Selecionar todos

    txClose() - fecha o arquivo do texto ativo ou indicado
    txError() - informa qual o último erro registrado
  txGetLine() - lê uma linha inteira do texto ativo
    txLines() - informa a quantidade de linhas de um texto
   txMaxCol() - informa a largura da maior linha existente
     txOpen() - abre um arquivo texto, indexando-o
  txSetArea() - seleciona uma área de texto
     txSize() - informa o tamanho do texto ativo
A função txGetLine(), aliás, possui um recurso de filtro, para eliminar "impurezas" do texto e obter a linha pronta pra uso.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
SandroBelarmino
Usuário Nível 3
Usuário Nível 3
Mensagens: 464
Registrado em: 04 Set 2007 16:11
Localização: Pedreira-SP

Re: Como saber quantas linhas tem um txt?

Mensagem por SandroBelarmino »

Grande Maligno !!!
Ficamos no aguardo de mais essa contribuição. :)

Abraço.
Alessandro R Belarmino
Clipper 5.2e - Blinker 7 - DBFNTX / DBFCDX
"Quem trabalha muito erra muito, quem trabalha pouco erra pouco, quem não trabalha não erra e quem não erra é promovido !!!!"
Responder