Ler arquivo txt... strlen e posição

1. Ler arquivo txt... strlen e posição

José Antônio Nunes de Morais
janunesdemor

(usa Slackware)

Enviado em 04/09/2009 - 23:12h

Prezados... Eu gostaria de ler um arquivo, arquivo.txt... com milhares de linhas...

Mais este arquivo tem uma marcação
uma linha X.. esta assim ">palavra [65]" o > existe em todas as linha que eu quero pegar.. e tambem quero pegar o que esta entre [xx] no caso a palavra que pode ser qualquer nome e tambem o xx que poder ser 1 ate n.

Alguem sabe como eu posso fazer isto no C/C++



Veja meu arquivo.c

Onde eu tenho isto...

Na verdade eu gostaria de contar as linha e copia um caracter na posição...

Se alguém puder me dar uma dica.

Obrigado..

Abaixo meu.

#cat Arquivo.c
#define _GNU_SOURCE // necess�rio porque getline() � extens�o GNU
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE *f= fopen("/util/progs/biblia/biblia1.txt", "r");
size_t len= 100; // valor arbitr&#65533;rio
char *linha= malloc(len);
int tam=0;
// char letra,palavra[0];
if (!f)
{
perror("/util/exemplo/biblia.txt");
exit(1);
}
while (getline(&linha, &len, f) > 0)
{
int tm=0;
printf("%s", linha);
tam=strlen(linha);
printf("\n%d",tam);
// letra=palavra[0];
// printf("\n%cCaracter:",&linha);
// if (palavra==">")
// {
// printf("\n%c",&linha);
// printf("\n");
// }
}
if (linha)
free(linha);
fclose(f);
return 0;
}


  


2. strchr

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 05/09/2009 - 18:51h

Bem, não entendi direito a pergunta mas se você tem dúvida de
como pegar o número entre os [ ], aqui vai.

Se todas as linhas seguir o padrão que você disse, fica fácil pegar o número:

>palavra[xx]

Você pode localizar a primeira ocorrência de '[' com a função strchr() e apontar para a posição seguinte do '[', veja:

char *ch ;
char *numero ;

ch = strchr(linha,'[') ;
numero = ch+1 ;
numero [ strlen(numero) -1 ] = 0 ;

OBS: Essa última linha altera a string original.
Para mostrar o número basta mandar o printf normalmente:

printf("Numero: %s",numero) ;

Acho que é isso.
Abraços






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts