Ir para conteúdo
Fórum Script Brasil
  • 0

Como ler arquivos txt e fazer pesquisas?


GabrielCardelli

Pergunta

Como ler arquivos txt e fazer pequisas nele?

no caso eu usaria um ponteiro

FILE *txt

txt= fopen ("nome.txt", "r+");

1° parte seria assim né?

e depois?

Oque eu usaria?

EX: eu tenho um arquivo com varias frases

A bola é verde

A bola é azul

A bola é rosa

no casocomo eu faria pra achar todasas frases que tivessea palavra "bola"?

E no caso como jogar todas elas direto pra impressão?

Abraço

Editado por GabrielCardelli
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

#include <stdio.h>
#include <string.h>
void procura(char *str, FILE *fp){
    int pos_atual, tam = strlen(str)+1;
    char ch, word[tam];
    while (!feof(fp)){
        pos_atual = SEEK_CUR;
        if(*str==(ch=getc(fp))){
            fseek(fp, -1, pos_atual);
            fgets(word, tam, fp);
            if(!strcmp(word, str)){
                printf("Palavra encontrada: %s", word);
                return;
            }
            pos_atual -= tam-1;;
        }
    }
    printf("A palavra digitada não foi encontrada.");
}
main(){
    FILE *fp;
    char word[15], arq[15];
    printf("digite o nome do arquivo que você deseja ler: ");
    scanf("%s", arq);
    fp = fopen(arq, "r+");
    printf("Digite a palavra que queira buscar no arquivo %s: ", arq);
    scanf("%s", word);
    procura(word, fp);
    getch();
}

A função aí em cima procura() vai procurar pela string str no arquivo fp, onde tam é o tamanho da string. A função vai ler caracter por caracter até achar um que coincida com o primeiro caracter da string, depois faz-se a comparação com strcmp() que se retornar zero, ou seja, se as strings forem iguais, vai escrever que achou e retorna pra main. Caso as strings não sejam iguais, pos_atual vai ser decrementada com tam-1 passando assim pro caracter sucessor, pra fazer denovo a comparação com o primeiro caracter da string até encontrar e assim ver se achou denovo, e tal.

Espero ter ajudado.

Abraço.

Editado por Ark
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...