Ich versuche einen Code mit C zu schreiben, wo ich eine Datei mit mehr als 300.000 Zeilen habe. Ich möchte also ein bestimmtes Wort (# P5P5) sehen, das mehr als einmal erscheint und auch die entsprechenden Zeilen dieses Wortes lesen. Aber mein Programm sucht nur das erste Wort und hört auf ... Ich möchte eine Schleife machen, um die anderen zu finden.#Programm in C - Wie liest man ein Wort und die Zeile dieses Wortes in einer .txt? C-Programm
Danke, Gabriela
So ist mein Code dies:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE *arquivo = fopen("testando.txt", "r");
char caractere; // caractere a ser lido
int existe_linhas = 0;
int quant_linhas = 0;
int num = 0;
char pesquisa[] = "# 00"; // string a ser pesquisada
int pos = 0; // posicao de início da pesquisa
int encontrei = 0; // status da pesquisa
if(arquivo != NULL) //verifica se o arq foi aberto ok
{
while((caractere = fgetc(arquivo)) != EOF)
{
// vamos verificar se o caractere atual se iguala ao
// primeiro caractere da string a ser pesquisada
existe_linhas = 1; // há conteúdo no arquivo
if((caractere == pesquisa[0]) && (!encontrei))
{
encontrei = 1; // podemos continuar a pesquisa a partir daqui
pos = 0;
}
if(encontrei)
{
if(caractere == pesquisa[pos])
{
encontrei = 1; // continua a pesquisa
pos++; // incrementa a posição de busca
if(pos == strlen(pesquisa))
break;
}
else{
encontrei = 0;
}
}
if(caractere == '\n') //verificar se é quebra de linha
{
quant_linhas++;
}
} //fecha o while
if(existe_linhas)
quant_linhas++;
if(encontrei){
printf("A string pesquisada existe no arquivo");
}
else{
printf("A string pesquisada NAO existe no arquivo");
}
printf("\n\n");
printf("A string pesquisada está na linha %d.", quant_linhas);
fclose(arquivo); // libera o ponteiro para o arquivo
}
else
printf("Nao foi possivel abrir o arquivo.");
printf("\n\n");
system("PAUSE");
return 0;
}
Hallo, Nachdem ich Wort gefunden habe möchte ich das nächste gleiche Wort finden. Weil ich in meinem .txt dieses Wort viele Male habe. Ich möchte die Nummer der Zeile wissen, wo ich dieses Wort finde. Zum Beispiel: Zeile 3, Zeile 200, Zeile 1000 usw. Weil diese .txt eine Daten-.txt ist, wo ich mehr als 300.000 Zeilen mit Datenblöcken habe. – Gabriela