char array ??
-
Hi
ich hab ein kleines programm des aus einem txt file bestimte zeilen raussucht und in ein anderes file schreibt allerdings muss ich die zeilen auch noch abändern Bsp.:Connecting to pop.web.de...
USER user @web.deFrom: "WEB.DE informiert" <neu @web.de>
Date: Wed, 21 Jun 2006 15:09:44 +0200ich will aber nur
pop.web.de...
user @web.deneu @web.de
Wed, 21 Jun 2006 15:09:44jetzt ist das problemm das ich keine ahnung hab wie ich das mache wenn die zeilen in char arrays sind???
hier mal der code.#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char inhalt[100]; char *temp; FILE *f; FILE *f_n; f_n = fopen("new.txt", "r+"); f = fopen("test.txt", "r"); if(f == NULL) { printf("Fehler bei fopen()... \n"); return EXIT_FAILURE; } fgets(inhalt, BUFSIZ, f); //bis ende datei while(!feof(f)) { //schleife für einen account while(1){ //suche ">Connecting" do { fgets(inhalt, BUFSIZ, f); if(strstr(inhalt, ">Connecting") != NULL){ //temp = strcspn( inhalt, "\t" ); printf(inhalt); fputs(inhalt, f_n); } }while(strstr(inhalt, ">Connecting") == NULL); //suche ">USER" do { fgets(inhalt, BUFSIZ, f); if(strstr(inhalt, ">USER") != NULL){ printf(inhalt); fputs(inhalt, f_n); } } while(strstr(inhalt, ">USER") == NULL); while(strstr(inhalt, "successful") == NULL){ char temp[100] = ""; //suche "*******" while(1) { fgets(inhalt, BUFSIZ, f); if(strstr(inhalt, "successful") != NULL) break; if(strstr(inhalt, "*************") != NULL){ printf(inhalt); break; } } if(strstr(inhalt, "successful") != NULL) break; //suche "From:" while(1) { fgets(inhalt, BUFSIZ, f); if(strstr(inhalt, "successful") != NULL) break; if(strstr(inhalt, "From:") != NULL){ //strcat(temp, inhalt); temp = strrchr(string, '>'); *temp = ''; printf(inhalt); fputs(inhalt, f_n); break; } } if(strstr(inhalt, "successful") != NULL) break; //suche "Date:" while(1) { fgets(inhalt, BUFSIZ, f); if(strstr(inhalt, "successful") != NULL) break; if(strstr(inhalt, "Date:") != NULL){ strcat(temp, inhalt); // strcat(temp, inhalt); printf(inhalt); fputs(inhalt, f_n); break; } } } } /* TODO (#1#): csv datei schreiben */ printf("ender der ersten account schleife"); } system ("pause"); return EXIT_SUCCESS; } //if(strstr(inhalt, "The operation was successful") != NULL) break;
-
Die Zeichen des char-Arrays stehen einfach hintereinander im Speicher (wobei die meisten String-Funktionen so lange weiterlesen, bis sie auf ein '\0' treffen). Also kannst du mit einfacher Zeiger-Arithmetik weiterkommen - z.B. beginnt der Name des Servers in der ersten Eingabezeile bei
inhalt+15.PS: Und eventuell solltest du auf C++ Mittel umsteigen und fstream und string verwenden.
-
kennst du zufälig die syntax von fstream oder ne page auf der die steht???
-
bolu schrieb:
kennst du zufälig die syntax von fstream oder ne page auf der die steht???
also bei mir hat google soviele gute seiten gefunden, und da habe ich nur fstream eingegeben...
-
Schau mal ins Magazin, dort habe ich einen recht ausführlichen Artikel über IO-Streams geschrieben - eventuell hilft der dir weiter. (und einen über den Umgang mit Strings)
-
danke für eure schnellen antworten und jetzt wieder an die arbeit sonst giebts ärger vom chef
