Ich weiß nicht, wie Sie dieses Problem lösen. Ich habe diese Funktion, die alle .txt-Dateien druckt, die ich habe, aber ich muss auch nach jedem Dateinamen einige spezifische Zeichenfolgen (jeder Datei) suchen und drucken, die ein Wort enthalten. Dies ist der Teil, der den Namen der Dateien ausgibt.Search_string in einer Schleife von verschiedenen Dateien in C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sys/types.h>
#include <dirent.h>
int main() {
DIR* p;
struct dirent* pp;
p = opendir("./");
if (p != NULL) {
while ((pp = readdir(p)) != NULL) {
int length = strlen(pp->d_name);
if (strncmp(pp->d_name + length - 4, ".txt", 4) == 0)
puts(pp->d_name);
}
(void)closedir(p);
}
return 0;
}
Ich brauche einige bestimmte Wörter (drei verschiedene Wörter) und drucken Sie die Zeile in dem enthalten sind zu suchen, die drei verschiedene Linien sein würde.
Momentan gibt das Programm folgendermaßen aus:
0_email.txt
1_email.txt
innerhalb dieser Dateien, die wie E-Mails sind, ich brauche er Datum zu drucken, wenn sie senden wurden (Datum :), der (An :) und das Thema (Gegenstand:). Diese Information ist nicht immer in der gleichen Zeile. Ich habe versucht, diesen Code, der das Wort suchen, aber ich bin nicht in der Lage, das Programm in allen Dateien suchen (weil diese Dateien erhöhen können und unterschiedliche Namen haben, nein, ich kann es nicht namentlich tun) und mehrmals
FILE *fp;
char filename[]="0_email.txt",line[200],search_string[]="To:";
fp=fopen(filename,"r");
if(!fp){
perror("could not find the file");
exit(0);
}
while (fgets (line, 200, fp) != NULL){
if(strstr(line,search_string))
fputs (line, stdout);
}
fclose (fp);
Dieser zweite Code ist eine, die ich in Internet gefunden zu suchen, ich habe gerade c Programmierung lernen, und ich bin nicht sehr vertraut mit ihm.
Danke für Ihre Hilfe!
Konnten Sie spezifischer sein und uns ein Beispiel zeigen? –
Also für '.txt' Dateien müssen Sie sie öffnen und einen Teil der Datei lesen und ausdrucken? Warum versuchst du das dann nicht einfach nur mit dem Dateinamen? –
Ich habe einige weitere Informationen hochgeladen. –