Wie Log-File auswerten?
-
danke joe das genau das was ich brauche ich bekomme allerdings Fehler
[C++ Fehler] Unit1.cpp(51): E2451 Undefiniertes Symbol 'TSTringList'
[C++ Fehler] Unit1.cpp(51): E2451 Undefiniertes Symbol 'LogFile'
[C++ Fehler] Unit1.cpp(51): E2303 Typname erwartet
[C++ Fehler] Unit1.cpp(51): E2379 In Anweisung fehlt ;naja bin halt neu auf dem gebiet c++

was habe ich falsch gemacht
memo1 habe ich
logfile was ist das ?ich weiss sowieso nicht richtig was eine stringlist is, vllt kann mir das ja einer erklären da wäre nett

-
Hallo
Schreibfehler. Es muß TStringList heißen, wie ein Blick in die BCb-Hilfe auch gezeigt hätte.
bis bald
akari
-
ja joey, ich ahbe es schnell hingefluscht, weil es hat ja kein anderer gemacht. der fred ist schon 5 tage alt. wie gesagt - scheiß feheler, einfach runtergerattet, ich muss hier selber arbeiten. wenigstens hatte er einen anhaltspunkt

-
also die felher sind weg hatte 1:1 kopiert und nicht darauf geachtet das er TSTringlist icht mag wegen dem großen T

-
azad187 schrieb:
also die felher sind weg hatte 1:1 kopiert und nicht darauf geachtet das er TSTringlist icht mag wegen dem großen T

wenn du dich net gleich auf den code gestürzt hättest, wüßtest du das ich geschrieben ahbe das das ruchizucki ging^^
-
@Mastefu trotzdem zu kurz gesprungen (oder deine Pillen trüben den Blick):
Das war die Anforderung:
Wie kann ich nun nach z.B. " C:\WINDOWS\system32\tapisrv.dll " suchen, und wenn dieses
gefunden wird, die sich dahinter befindende Versionsnummer z.B. in einem Edit Feld ausgeben ?Mit
AnsiString sub = LogFile->Strings[i].SubString(33,LogFile->Strings[i].Length);hast du den Dateinamen und wie kommst du nun an die gewünschte Versionsnummer?? Ahaa, Leerzeichen suchen und wieder extahieren?? Wie praktisch. Da erschien mein splitten doch angenehmer:
TStringList *teile=new TStringList();
for(int i=0 ; i <LogFile->Count ; i++)
{
split(teile,,LogFile->Strings[i].," ");
String Datei=teile->Strings[5];// Wenn ich mich nicht verzählt habe
String Version=teile->Strings[6];// Wenn ich mich nicht verzählt habe}
delete teile;
-
Christian. klar du hast recht. allerdings habe ich halt echt net die zeit hier denen das genau so zu coden wie sie es haben wollen. er hatte die SL ja nichtmal verstanden. und da seid tagen kein anderer drqauf einging habe ich es einfach getan, weil ich weiß wie es ist, wenn man keine hilfe hat

-
naja ich komme mein Ziel schon langsam näher allerdings kann ich keine Stellenagabe machen da die sich variert kann ich auch eine suche nach einem Wort machen was entahleten ist egal was for unt hinter steht also inetwa
sub = LogFile->Strings[i].SubString("*Fehler*",LogFile->Strings[i].Length());
oder geht sowas in der art nicht, denn ich will nur das er mir alle Fehler aus den Logfile in ein Memo ausgibt.
-
sorry falsch, hatte die 2. Seite nicht gesehen. lol
-
Und was ist an meinem Vorschlag schlecht??
TStringList *teile=new TStringList(); for(int i=0 ; i <LogFile->Count ; i++) { split(teile,,LogFile->Strings[i]," "); for(int x=0;x<teile->Count;x++) Memo1->Lines->Add(teile->Strings[x]); } delete teile;
-
Berichtigung:
split(teile,LogFile->Strings[i]," ");du hast in Teile alle Elemente drin und kannst diese durchsuchen, ausgeben, oder sonstwas machen.
-
ich kann deins leider nicht resten da er die split funktion nicht kennt brauch ich dafür noch ne .h datei ?
-
Die Funktion gibt es hier
http://www.marquardtnet.info/cecke/quickies.1/1_quicky_01.html
diese in die Header-Datei kopieren (außerhalb der Klasse).
ODER ODER
oben in die CPP-Datei vor TForm *....
ABER NUR EINS VON BEIDEN!!!
-
azad187 schrieb:
sub = LogFile->Strings[i].SubString("*Fehler*",LogFile->Strings[i].Length());
Um zu prüfen, ob sich ein bestimmtes Wort in einem String befindet, bietet sich die Funktion AnsiString::AnsiPos() an.
-
So habe jetzt soweit alles mit meiner logdatei fertig wie ich es haben möchte...
Nur noch eine sache0205 0
0211 0
0216 0
0139 1
0231 0
0240 0
0246 0
0258 0
0262 0
0271 0das steht z.b jetzt im Memo nach der Kürzung nun soll er mir im memo aber nur noch das angeben wo die 1 dahinter steht und da wo die 0 ist die Zeile gar nicht mit aufzählen
Wie mach ich das jetzt ?

-
wenn das letze zeichen keine 1 ist
ignorieren
wenn das letze zeichen eine eins ist
asugeben?
-
genau das will ich

-
Dann mach das doch. Verwende AnsiPos() um zu prüfen, ób das letzte Zeichen eine 0 oder 1 ist und füge es entsprechend ein.