Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 998

 

1 Zum Seitenanfang

Dienstag, 6. Oktober 2009, 10:12

C++ Problem beim Auswerten von *.log Datein

Hi leute,

ich brauche wiedermal eure hilfe. Folgendes Problem liegt an:

Ich habe Logdatein mit viel Text welcher ungefair so aussieht:

00:15:28:218 --> Kommando Start Höhenstandmessung an DPP
00:15:28:250 --> Bit Kommando Start Höhenstandmessung
00:15:28:250 --> Kommando Start Höhenstandmessung
00:15:28:250 --> Kommando Start Höhenstandmessung an DPP
00:15:28:265 --> Starte Höhenmessung
00:15:34:453 --> Höhenstandsmessung Werte: 2878,92423105742

nun muss ich aus dieser log Datei eine Bestimmte nummer Rausfiltern und zu der Nummer ein Error zuweisen.
Also qausi. Ich starte eine Messung, nach der Messung kommen messwerte und manchmal kann es passieren dass da ein Error kommt.
Da die Log Datei nicht von meinem Programm ist, kann ich sie nicht nach meinen Wünschen anpassen. Damit zb bei erfolgreicher messung da stand "Messung erfolgreich"

Aktuell habe ich folgenden QUellcode:

C/C++-Quelltext

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
//Datei Oeffnen
 FILE* datei = fopen(dName.c_str(),"a+");

  do
  {
    //Zeile Holen aus Datei
        fgets(buff,255,datei);
 //Pruefe ob der String VinNr vorhanden ist
        if(strstr(UpperCase(buff).c_str(),UpperCase("VinNr").c_str()) != NULL){
 // wenn vorhanden ermittle laenge
                len = strlen(buff) - 28;
//kopier den buffer String an AnsiString um die Nummer zu finden
                strncpy(aString, buff+27, len);
//An die Letzte stelle \0 anhaengen
                aString[len] = '\0';
//an Ausgabe String den String anhangen
                aText += aString;
        }
//Pruefe ob string Fehler vorhanden ist
        if(strstr(UpperCase(buff).c_str(),UpperCase("Fehler Höhenmessung").c_str()) != NULL ){
// wenn ja, dann setze 0 IO  1 NIO -              
  aText += "\t0\t1\-\n\0";

        }else{
//sonst 1 IO 0 NIO
               aText +="\t1\t0\-\n\0";
        }



         

  }while(!feof(datei));
  fclose(datei);
//Den zusammengebauten string in Memo ausgeben
     MainForm->Memo1->Text = aText;


ich habe da irgendwie ein Dummen denkfehler drin. ich komme immer in das else der zweiten bedingung rein bei jeder zeile aber das muss ignoriert werden. es soll im grunde NUR dann einen String zusammensetzen, wenn ich die Nummer habe und das ganze darf nur einmal pro nummer zusammengesetzt werden. so dass ich später so eine ausgabe in meiner memo haben muss

Nr \t IO \t NIO \n
123 \t 1 \t 0 \n <----- diese Nummer hat kein fehler
456 \t 0 \t 1 \n <----- diese Nummer hat ein Fehler

am ende Muss ich dann wissen aha die Nummer sowieso hatte soviele Fehler

vllt könnt ihr mir da mal weiterhelfen(Zu viel mit PHP in Letzter zeit Programmiert und nun kann ich mit C++/Borland nciht umgehen)

MFG
Mein kleines Projekt
-Cruel Online-
 

silence

König

Dabei seit: 28.02.2003

Beiträge: 981

 

2 Zum Seitenanfang

Freitag, 9. Oktober 2009, 12:18

Hat das einen Grund, warum du alles mit reinem C schreibst, und nicht z.B. die AnsiString klasse von Borland verwendest?
Ich hab (zum Glück) lange nix mehr mit Borland gemacht, bin mir aber sicher das man mit oben besagter Klasse recht einfach einen kleinen Parser schreiben kann.
Aktuell nutze ich: Windows, Linux, MacOS X, Solaris...weil die Welt nicht nur S/W ist!
Blog
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 998

 

3 Zum Seitenanfang

Freitag, 9. Oktober 2009, 12:45

ja die anderen programmierer in der firma wollten es so(weil sie nichts anderes können) habe aber das problem behoben mit TStringList

MFG
Mein kleines Projekt
-Cruel Online-
 

Ähnliche Themen