Hallo zusammen!
Habe ein Programm geschrieben, dass mir entsprechende Daten aus einem Protokoll ausliest. D.h. das Protokoll besitzt jeweils eine Kopfzeile in der die verwendeten Daten jeweils sich an der gleichen Stelle befinden.
In den restlichen ca. 800 Zeilen befinden sich an jeweils unterschiedlichen Stellen Fehlermeldungen, die nicht vorkommen müssen. Daher müssen mit dem Programm die Fehler für die entsprechenden Protokolle ermittelt werden(es gibt 4 Fehlerarten) Daher, springe ich von Zeile zu Zeile um eventuelle Fehler zu finden (z.B. PDU overtemperature)
Eigentlich müsste das Programm funktionieren, jedoch bekomme ich den Fehler:
Im Projekt Projekt1.exe ist eine Exception der Klasse EStringListError mit der Meldung 'Listenindex überschreitet das Maximum (13832137)' aufgetreten.
Was bedeutet das bzw. was kann ich dagegen tun.
Vielen dank im voraus, gruß Tales
Programm:
Kopfzeile mit entsprechenden Daten
TStringList *lesen=new TStringList(); //Anlegen einer TStringList
lesen->LoadFromFile("C:\\PDUM01-00478_26112008_1744_1246.wdf");
lesen->Strings[0];
Serial=lesen->Strings[1].SubString(13,12);
Datum=lesen->Strings[2].SubString(11,10);
if (lesen->Strings[5].Pos("10")) {
Slot="10";
}
else {
Slot=lesen->Strings[5].SubString(11,1);
}
Pruefer=lesen->Strings[6].SubString(13,4);
ca. 800 Zeilen auf möglichen Fehler kontrollieren
in der letzten Zeile steht endresult = Ende
while(Last_line!="End")
{
i++;
if(lesen->Strings[i].Pos("endresult")) {
Last_line="End";
continue;
}
if(lesen->Strings[i].Pos("PDU overtemperature")) {
Fehler_temp="PDU overtemperature";
continue;
}
if(lesen->Strings[i].Pos("PDU error")) {
Fehler_error="PDU error";
continue;
}
if(lesen->Strings[i].Pos("PDU fail-error")) {
Fehler_fail_error="PDU fail-error";
continue;
}
if(lesen->Strings[i].Pos("PDU fail")) {
Fehler_fail="PDU fail";
continue;
}
}
delete lesen;
ListBox1->Items->Add(Datum+Serial+Slot+Pruefer);
ListBox1->Items->Add(Fehler_fail+Fehler_temp+Fehler_error+Fehler_f ail_error);
}
Habe ein Programm geschrieben, dass mir entsprechende Daten aus einem Protokoll ausliest. D.h. das Protokoll besitzt jeweils eine Kopfzeile in der die verwendeten Daten jeweils sich an der gleichen Stelle befinden.
In den restlichen ca. 800 Zeilen befinden sich an jeweils unterschiedlichen Stellen Fehlermeldungen, die nicht vorkommen müssen. Daher müssen mit dem Programm die Fehler für die entsprechenden Protokolle ermittelt werden(es gibt 4 Fehlerarten) Daher, springe ich von Zeile zu Zeile um eventuelle Fehler zu finden (z.B. PDU overtemperature)
Eigentlich müsste das Programm funktionieren, jedoch bekomme ich den Fehler:
Im Projekt Projekt1.exe ist eine Exception der Klasse EStringListError mit der Meldung 'Listenindex überschreitet das Maximum (13832137)' aufgetreten.
Was bedeutet das bzw. was kann ich dagegen tun.
Vielen dank im voraus, gruß Tales
Programm:
Kopfzeile mit entsprechenden Daten
TStringList *lesen=new TStringList(); //Anlegen einer TStringList
lesen->LoadFromFile("C:\\PDUM01-00478_26112008_1744_1246.wdf");
lesen->Strings[0];
Serial=lesen->Strings[1].SubString(13,12);
Datum=lesen->Strings[2].SubString(11,10);
if (lesen->Strings[5].Pos("10")) {
Slot="10";
}
else {
Slot=lesen->Strings[5].SubString(11,1);
}
Pruefer=lesen->Strings[6].SubString(13,4);
ca. 800 Zeilen auf möglichen Fehler kontrollieren
in der letzten Zeile steht endresult = Ende
while(Last_line!="End")
{
i++;
if(lesen->Strings[i].Pos("endresult")) {
Last_line="End";
continue;
}
if(lesen->Strings[i].Pos("PDU overtemperature")) {
Fehler_temp="PDU overtemperature";
continue;
}
if(lesen->Strings[i].Pos("PDU error")) {
Fehler_error="PDU error";
continue;
}
if(lesen->Strings[i].Pos("PDU fail-error")) {
Fehler_fail_error="PDU fail-error";
continue;
}
if(lesen->Strings[i].Pos("PDU fail")) {
Fehler_fail="PDU fail";
continue;
}
}
delete lesen;
ListBox1->Items->Add(Datum+Serial+Slot+Pruefer);
ListBox1->Items->Add(Fehler_fail+Fehler_temp+Fehler_error+Fehler_f ail_error);
}
Comment