#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * ZeitVonZeileCut(const char * text, int beg, int end) {// diese Methode Schneidet die Zeit raus
int i;
char *ZeitChar = 0;
int len = end - beg;
if (text)
if (text + beg)
if (0 < len)
if ((ZeitChar = (char *) malloc(1 + len))) {
for (i = beg; text[i] != '\0' && i < end; i++)
ZeitChar[i - beg] = text[i];
ZeitChar[i - beg] = '\0';
}
return ZeitChar;
}
char * ZeigeErsteZeit(const char * SuchWort_1a_1, char *zeile1, char *strZeit_1a_1, char *textError1, int counter, int flagSW1, int flagSW2, int flagSW3) {
if (strstr(zeile1, (SuchWort_1a_1)) != NULL) { // wird erste Wort gesucht
strZeit_1a_1 = ZeitVonZeileCut(zeile1, 13, 25); // schneidet die Zeit von der Zeile
if (flagSW1 == 1) { // wenn "gekommen" war mehr mals dann anzeige das als Fehlermeldung
textError1 = "ERROR, 1-te kommt mehr mals:";
strcat(textError1, strZeit_1a_1); // verkettet geschnittene Zeit und den Text wo sagt Das ist eine Error zusammen und wird das ausgegeben
return textError1;
counter--; // bei wiederholungen soll wieder counter runter gesetzt werden
}
flagSW1 = 1; // wenn "gekommen" wiederholt sich markiere das und danach zeige
flagSW2 = 0; //
flagSW3 = 0;
}
return strZeit_1a_1;
}
char * ZeigeZweiteZeit(const char * SuchWort_2a_2, char *zeile1, char *strZeit_2a_2, char * textError2, int counter, int flagSW1, int flagSW2, int flagSW3) {
if (strstr(zeile1, (SuchWort_2a_2)) != NULL) { // sucht abgeholte zeit
strZeit_2a_2 = ZeitVonZeileCut(zeile1, 13, 25);
if (flagSW2 == 1) {
textError2 = "ERROR, 2-te kommt mehr mals:";
strcat(textError2, strZeit_2a_2);
return textError2;
counter--;
}
flagSW2 = 1;
flagSW1 = 0;
return strZeit_2a_2;
}
}
char * ZeigeDritteZeit(const char * SuchWort_2b_2, char *zeile1, char *strZeit_2b_2, char *textError3, int counter, int flagSW1, int flagSW2, int flagSW3) {
if (strstr(zeile1, (SuchWort_2b_2)) != NULL) { // sucht zuruckgegebene Zeit
strZeit_2b_2 = ZeitVonZeileCut(zeile1, 13, 25);
if (flagSW3 == 1) {
counter--;
textError3 = "ERROR, 2-te kommt mehr mals:";
strcat(textError3, SuchWort_2b_2);
return textError3;
}
flagSW3 = 1;
return strZeit_2b_2;
if (counter == 6) {
printf("___________________________________________________________________________\n");
}
}
}
int main(int argc, char** argv) {
int N = 80;
FILE *pFile;
char zeile1[N];
char filename[50] = "/home/alt/2017-Projekte/LukasPost1";
const char SuchWort_1a_1[80] = "Lukas Maly gekommen";
const char SuchWort_2a_2 [80] = "Lukas Maly abholte Wagen <";
const char SuchWort_2b_2 [80] = "Lukas Maly zuruckgab Wagen <";
const char SuchWort_4a_1[80] = "Kerstin Maly gekommen";
const char SuchWort_4a_2 [80] = "Kerstin Maly abholte Wagen <";
const char SuchWort_4b_2 [80] = "Kerstin Maly zuruckgab Wagen <";
char * strZeit_1a_1;
char * strZeit_2a_2;
char * strZeit_2b_2;
char *textError1;
char *textError2;
char *textError3;
char *lukasErste;
char *lukasZweite;
char *lukasDritte;
char *kerstinsErste;
char *kerstinsZweite;
char *kerstinsDritte;
int flagSW1 = 0; // boolean für 1-te Wort wenn sich wiederholt
int flagSW2 = 0; // boolean für 3-te Wort wenn sich wiederholt
int flagSW3 = 0; // boolean für 4-te Wort wenn sich wiederholt
int counter = 0;
printf("=================================================\n");
pFile = fopen(filename, "r");
if (pFile != NULL) {
while (fgets(zeile1, N, pFile)) {
counter = counter % 6; // an Tag soll nur 6 mal ein und austemmpeln daher steht 6
///////////// wie kann man diese Funktion in eine Methode reintun //////////////////////////////
lukasErste = ZeigeErsteZeit(SuchWort_4a_1, zeile1, strZeit_1a_1, textError1, counter, flagSW1, flagSW2, flagSW3);
counter++; // wenn das gibt erhöhe counter um 1
printf("%d–––––%s\n", counter, lukasErste);
lukasZweite = ZeigeZweiteZeit(SuchWort_2a_2, zeile1, strZeit_2a_2, textError2, counter, flagSW1, flagSW2, flagSW3);
counter++; // wenn das gibt erhöhe counter um 1
printf("%d–––––%s\n", counter, lukasZweite);
lukasDritte = ZeigeDritteZeit(SuchWort_2b_2, zeile1, strZeit_2b_2, textError3, counter, flagSW1, flagSW2, flagSW3);
counter++; // wenn das gibt erhöhe counter um 1
printf("%d–––––%s\n", counter, lukasDritte);
kerstinsErste = ZeigeErsteZeit(SuchWort_1a_1, zeile1, strZeit_1a_1, textError1, counter, flagSW1, flagSW2, flagSW3);
counter++; // wenn das gibt erhöhe counter um 1
printf("%d–––––%s\n", counter, kerstinsErste);
kerstinsZweite = ZeigeZweiteZeit(SuchWort_4a_2, zeile1, strZeit_2a_2, textError2, counter, flagSW1, flagSW2, flagSW3);
counter++; // wenn das gibt erhöhe counter um 1
printf("%d–––––%s\n", counter, kerstinsZweite);
kerstinsDritte = ZeigeDritteZeit(SuchWort_4b_2, zeile1, strZeit_2b_2, textError3, counter, flagSW1, flagSW2, flagSW3);
counter++; // wenn das gibt erhöhe counter um 1
printf("%d–––––%s\n", counter, kerstinsDritte);
////////////////////////////////////////////////bis hier in eine methode tun////////////////////////////////////
}
fclose(pFile);
return 0;
} else {
printf("File ist nicht gefunden\n");
return -1;
}
}