ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
654
654
EMPFEHLEN
-
Hi C++ler,
wer kann mir bei der letzten Auswertung helfen?
Ich hab en Prog geschrieben das mir den String einzelner Logfiles auswertet.(Die Logfiles sind Infos einer Brennstation.)
Das Prog liest den String ein , Splittet ihn bei jedem "_" und gibt mir die einzelnen Infos wieder. Die *.ubl werden per Parameter angegeben (Siehe Quelltext).
Wieviele Logfiles, welche CD`s gebrannt wurden habe ich schon, mir fehlt jedoch die EINE Auswertung. Dort soll Ausgewertet werden welcher user welche Unterschiedlichen CD`s gebrannt hat und wer am meisten brannte. Ich denke dies müsste mit einem array funktioneiren jedoch hapert es mit der Umsetzung.
THX im vorraus für eure hilfe und IDEENCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
// Logfiles.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung. // #include <windows.h> #include <stdlib.h> #include <conio.h> #include <iostream.h> #include <stdio.h> #include <dos.h> #include <string.h> #include <io.h> //long _findfirst( char *filespec, struct _finddata_t *fileinfo ); #define rot 12 #define steffi 12 #define lol 10 #define blau 3 void textcolor(WORD color) { SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE), color); } struct MRec { char produkt[30]; char rechner[30]; char user[9]; int jahr; int monat; int tag; int std; int minuten; int sek; long MB; }; void insertionsort(int n, char daten[]){ int i, j; char v; for(i=1; i<n; i++){ v = daten[i]; for(j=i; j && (daten[j-1]>v); j--) daten[j] = daten[j-1]; daten[j] = v; } } int main(int argc, char *argv[]) { char* v1; char* v2; char* v3; char* v4; char* v5; char* v6; char* v7; char* v8; char* v9; char* v10; int howmanyppp=0; int Zeile =0; int i=0; int Zaehler=0; char Hilf[80]; long handle; struct _finddata_t f; int howmuchMB=0; int howmanyULaufwerk=0; int howmanyPatch=0; MRec db [1000]; char array[30][1000]; textcolor(rot); while (i<=argc) { printf("%s\n",argv[i]); i++; } strcpy (Hilf,argv[1]); strcat(Hilf,"[url="file:///*.ubl"]\\*.ubl[/url]"); printf("\n\n%s",Hilf); handle = _findfirst(Hilf, &f); if (handle == -1) { printf("\nfalscher Parameter"); return -1; } printf("\n%s",f.name); while (1) { if (_findnext(handle,&f) != 0) break; printf("\n%s\n",f.name); /*scanf(f.name,"%[^_]%[^_]%[^_]%[^_]%s",v1,v2,v3,v4); printf("%s %s %s \n%s",v1,v2,v3,v4); cout<<endl;*/ v1 = strtok (f.name,"_"); strcpy(db[Zeile].produkt, v1); v2 = strtok (NULL,"_"); strcpy(db[Zeile].rechner, v2); v3 = strtok (NULL,"_"); strcpy(db[Zeile].user, v3); // if strcpy(array[Zaehler],v3); v4 = strtok (NULL,"_"); db[Zeile].jahr = atoi(v4); v5 = strtok (NULL,"_"); db[Zeile].monat = atoi(v5); v6 = strtok (NULL,"_"); db[Zeile].tag = atoi(v6); v7 = strtok (NULL,"_"); db[Zeile].std = atoi(v7); v8 = strtok (NULL,"_"); db[Zeile].minuten = atoi(v8); v9 = strtok (NULL,"_"); db[Zeile].sek = atoi(v9); db[Zeile].MB=0; if (strcmp(db[Zeile].produkt,"U-Laufwerk") == 0) { v10 = strtok (NULL,"_"); db[Zeile].MB= atoi(v10); } if(strcmp(db[Zeile].produkt,"PPP-CD") == 0) { howmanyppp++; } if(strcmp(db[Zeile].produkt,"U-Laufwerk") == 0) { howmanyULaufwerk++; } if(strcmp(db[Zeile].produkt,"Patch-CD") == 0) { howmanyPatch++; } textcolor(rot); printf("db[%d].produkt = %s\n", Zeile, db[Zeile].produkt); textcolor(rot); printf("db[%d].rechner = %s\n", Zeile, db[Zeile].rechner); textcolor(rot); printf("db[%d].user = %s\n", Zeile, db[Zeile].user); textcolor(steffi); printf("db[%d].jahr = %d\n", Zeile, db[Zeile].jahr); textcolor(rot); printf("db[%d].monat = %d\n", Zeile, db[Zeile].monat); textcolor(rot); printf("db[%d].tag = %d\n", Zeile, db[Zeile].tag); textcolor(rot); printf("db[%d].std= %d\n", Zeile, db[Zeile].std); textcolor(rot); printf("db[%d].minuten = %d\n", Zeile, db[Zeile].minuten); textcolor(rot); printf("db[%d].sek = %d\n", Zeile, db[Zeile].sek); textcolor(steffi); printf("db[%d].MB = %d\n", Zeile, db[Zeile].MB); textcolor(lol); howmuchMB += db[Zeile].MB; // printf("\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",v1,v2,v3,v4,v5,v6,v7,v8,v9,v10); Zeile++; Zaehler++; } /*Zeile=0; strcpy(array[Zaehler],db[Zeile].user); for (Zaehler=0;Zaehler<=1000;Zaehler++){ }*/ textcolor(lol); printf("\n\n\n"); printf("Es sind insgesamt:"); printf(" %d " , Zeile-1); printf("Logfiles\n" ); printf("Davon sind %d PPP-CD`s \n" , howmanyppp); printf("Insgesamt wurden %d MB gebrannt" , howmuchMB); printf("\nDavon wurden %d U-Laufwerke gebrannt" , howmanyULaufwerk); printf("\nEs wurden %d Patch CD gebrannt" , howmanyPatch); /* insertionsort(1001, db[Zeile].user); for(Zeile=0; Zeile<1000; Zeile++) printf("%d\n", db[Zeile].user); */ textcolor(blau); getch(); return 0; }
-
11.02.05 10:29 #2
- Registriert seit
- Apr 2002
- Ort
- Delmenhorst (Niedersachsen)
- Beiträge
- 3.567
moin
Du könntest z.B. eine struktur Namens Benutzer erstellen.
Code :1 2 3 4 5 6
struct Benutzer { char *name; int cds; char *cdnamen[100]; };
Nun kannst du Jeden Benutzer, wieviele Cds ergebrannt hat und wie die CDs heissen abspeichern.
Wenn du dann alles zusammen hast kannst du es bequem auswerten.
mfg
umbrasaxum
-
Danke für Deine schnelle Antwort.
Mein Problem liegt darin, dass ich nicht weiß, wie viele Benutzer diese Station benutzen werden. Ich habe vor, die Benutzer in einem Array abzuspeichern.Wenn ein User noch nicht im array enthalten ist, dann soll er hinzugefügt werden.Ansonsten muss die CD anzahl des einzelnen users um 1 erhöht werden. Außerdem soll diese die einzelnen arten der cd Aufzeichnen wie z.B. PPP-cd oder Patch-CD ...
-
11.02.05 12:50 #4
- Registriert seit
- Apr 2002
- Ort
- Delmenhorst (Niedersachsen)
- Beiträge
- 3.567
moin
Ist doch kein Problem.
Meine erste Idee kannst du ja benutzen und machst es wie folgt:
Code :1 2 3 4 5 6
struct Benutzer { char *name; int cds; char *cdnamen[100]; } Benutzer[100];
Nun kannst du die Daten für 100 Benutzer speichern.
Wenn ein neuer erstellt werdne soll kannst du ja die vorhandenen Namen überprüfen, und wenn er noch nicht vergeben ist fübst du halt einen hinzu.
mfg
umbrasaxum
Ähnliche Themen
-
Windows Logfiles
Von exitboy im Forum Microsoft WindowsAntworten: 6Letzter Beitrag: 09.08.06, 16:15 -
Htaccess mit PHP und Logfiles?
Von bienchen_2 im Forum PHPAntworten: 5Letzter Beitrag: 20.10.05, 15:45 -
Auswerten von Strömen (zugestreamte HTML-Quelltexte auswerten)
Von metacortex im Forum JavaAntworten: 5Letzter Beitrag: 05.07.04, 21:28 -
Analyser für Logfiles
Von wal im Forum Internet, DSL & FlatrateAntworten: 3Letzter Beitrag: 13.05.04, 13:19 -
Mysql Logfiles ?
Von Gagga im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 24.07.03, 15:12





Zitieren
Login






