Página 1 de 1

Retirar a primeira linha de um aquivo TXT

Enviado: 23 Jul 2012 21:40
por ronnywdson
Olá

Estou precisando criar uma rotina para ler um arquivo TXT e retirar a primeira linha dele e depois salvá-lo novamente, mas sem essa primeira linha.
Alguém já tem alguma coisa pronta?

Att
Ronny

Retirar a primeira linha de um aquivo TXT

Enviado: 23 Jul 2012 21:42
por ronnywdson
Peço desculpas ao moderador pois postei essa mensagem no local errado.

Retirar a primeira linha de um aquivo TXT

Enviado: 23 Jul 2012 23:25
por ronnywdson
Consegui pessoal

Código: Selecionar todos

function main()
                cTexto := memoread("C:\ PRINTER\Pag00001.Txt") 
                 nLinha := mlcount(cTexto)
                set device to printer
                set printer to "C:\ PRINTER\Pag00001.Txt"
                wrow=0
                For n := 2 to nLinh
                               @ wrow,0 say HB_ANSITOOEM(memoline(cTexto,134,n))
                               wrow++
                Next 
                 set device to screen
return .t.
Falta de ler a documentação, rsrsrs
Abri o antigo NG e olhei a sintaxe da função memoline().
Mas de qualquer forma, está aí a solução, caso alguém precise.

Att
Ronny Wdson

Retirar a primeira linha de um aquivo TXT

Enviado: 24 Jul 2012 09:15
por Pablo César
Mesmo que em xHarbour ou Harbour não exista limitação para ler arquivos até 64k, eu sou sempre a favor de ler o arquivo em baixo nível através das funções FOPEN/FREAD e ler a linha a linha que até podem ter tamanho diferentes. Então com uma função que lê a quebra de linha pelo CRLF, na minha opinião torna-se mais confiável.
Peço desculpas ao moderador pois postei essa mensagem no local errado.
Tópico movido para esta seção. Imaginei que a solução que você precisava era em Harbour pela utilização de funções em Harbour no seu exemplo. Sem problemas.

Retirar a primeira linha de um aquivo TXT

Enviado: 24 Jul 2012 18:26
por ronnywdson
Boa tarde Pablo

Você tinha razão, acho que vou ter que utilizar o fopen()/fread() para fazer o que eu quero, pois da forma que eu fiz é gerado um caracter na primeira posição (linha zero coluna zero), e quando eu mando imprimir esse arquivo, é feito um salto de página. Quer dizer a impressora já começa ejetando antes de imprimir. Eu tentei resolver o problema de uma linha em branco e acabei criando uma página em branco.. rsrsrs
Se tiver jeito de criar uma função que abra esse arquivo, retire o primeiro caractere (linha zero e coluna zero), depois o salve novamente, resolveria o meu problema.

Retirar a primeira linha de um aquivo TXT

Enviado: 24 Jul 2012 19:12
por alxsts
Olá!

Coloque a linha abaixo logo antes do FOR:

Código: Selecionar todos

SetPrc( 0,0 )