Hey Leute, schreibe gerade an einem Programm bei dem ich aus einer Liste aus Verbindungsdaten (Telephonverbindungen, also Dauer, Uhrzeit wann das Gespräch stattgefunden hat, und von welchem Zimmer aus) bestimmte anzeigen lassen soll, also zB alle Gespräche vom 23.08.2010, 12:00 Uhr bis 24.08.2010 17:00 Uhr von Zimmer 19.
Nach dem Zimmer suchen kein Problem, Datum auch kein Problem, aber jetzt falls es an dem Datum mehrere Verbindungen gab, bis zu einer gewissen Uhrzeit nur auszugeben wie oben erklärt macht mir Probleme, mehr oder weniger willkürliche Ergebnisse, mal richtig mal falsche dabei.
Die Uhrzeiten sind wie das Datum in einem String gespeichert, und werden in einen Chararray umgewandelt, dieser dann in ein int, also die Stunden in ein int, die Minuten und die Sekunden, damit ich sie vergleichen kann, größer kleiner ihr wisst.
Das Datum, Uhrzeit usw wird aus einer Textdatei eingelesen. Es liegt mit sicherheit nicht an der konvertierung von char zu int usw, mehrfach die Inhalte der Vars geprüft da stimmt alles, außerdem die Funktionen uach schon in anderen Programmen verwendet. Es muss ein Denkfehler bei der for-Schleife sein, sehe ihn aber nicht ....
Code etwas verzogen hoffentlich lesbar, das ist nur der ausschnitt bei dem das Datum überprüft und dann die Uhrzeit überprüft wird.
Nach dem Zimmer suchen kein Problem, Datum auch kein Problem, aber jetzt falls es an dem Datum mehrere Verbindungen gab, bis zu einer gewissen Uhrzeit nur auszugeben wie oben erklärt macht mir Probleme, mehr oder weniger willkürliche Ergebnisse, mal richtig mal falsche dabei.
Die Uhrzeiten sind wie das Datum in einem String gespeichert, und werden in einen Chararray umgewandelt, dieser dann in ein int, also die Stunden in ein int, die Minuten und die Sekunden, damit ich sie vergleichen kann, größer kleiner ihr wisst.
Das Datum, Uhrzeit usw wird aus einer Textdatei eingelesen. Es liegt mit sicherheit nicht an der konvertierung von char zu int usw, mehrfach die Inhalte der Vars geprüft da stimmt alles, außerdem die Funktionen uach schon in anderen Programmen verwendet. Es muss ein Denkfehler bei der for-Schleife sein, sehe ihn aber nicht ....
Code:
for(int i = 50; i >= 0; --i)
{
if(datum[i] == datum_start) // datum[i] wird das Datum des Eintrags Nr. i verglichen mit dem Datum das der Benutzer als anfangsdatum eingeben hat
{
for(int k = 0; k < 9; ++k)
{
cuhrzeit_u[k] = uhrzeit[i][k];
}
cuhrzeit_u[9] = '\0';
cstunden_u[0] = cuhrzeit_u[0];
cstunden_u[1] = cuhrzeit_u[1];
cstunden_u[2] = '\0';
cminuten_u[0] = cuhrzeit_u[3]; // Umwandlungen
cminuten_u[1] = cuhrzeit_u[4];
cminuten_u[2] = '\0';
csekunden_u[0] = cuhrzeit_u[6];
csekunden_u[1] = cuhrzeit_u[7];
csekunden_u[2] = '\0';
convert.char_to_int(istunden_u, cstunden_u);
convert.char_to_int(iminuten_u, cminuten_u);
convert.char_to_int(isekunden_u, csekunden_u);
if( istunden_u >= istunden_a) //Vergleich der Stunden, Minuten Sekunden, falls übereinstimmung speichern der Nr. i des Eintrags bei dem Übereinstimmung war
{
if(istunden_u == istunden_a)
{
if(iminuten_u >= iminuten_a)
{
if(iminuten_u == iminuten_a)
{
if(isekunden_u >= isekunden_a)
{
start = i;
}
}
start = i;
}
}
start = i;
}
else
{
break;
}
}
}
Code etwas verzogen hoffentlich lesbar, das ist nur der ausschnitt bei dem das Datum überprüft und dann die Uhrzeit überprüft wird.