Hallo Zusammen, habe folgendes Problem und zwar möchte ich mit dem Webserver von Radig (Softwareversion 1.4) eine Mail Zeitlich versenden. Nun habe ich mir folgenden Code überlegt.Er vergleicht die Sek und die Minuten mit einander bei ersreichen von 00s und 20min soll er die Schleife durchlaufen. Doch leider über geht er bei erreichen der Zeit die If Schleife. Woran könnte das liegen? signed char Zyklus = 10; //Variable für späteres Schleifenintervall struct time current_time; gettime(ActualTime, ¤t_time); if ((Mail_Trigger_Enable) && (current_time.second >= 00) && (current_time.minute == 19 ) || (current_time.minute == 20 )); { if (mail_state == 1) // Standtart 0 für keinen versand getriggert { if (vars.type_int[MAILFLAGS_ADDR] != 0) { cli(); printf("MailTrigger\n"); sendmail(packet, 0); sei(); mail_state = 1; } } else // versand wurde getriggert { if (vars.type_int[MAILFLAGS_ADDR] == 0) mail_state = 0; } } Vielen Dank für eure Hilfe Mirko
if ((Mail_Trigger_Enable) && (current_time.second >= 00) && (current_time.minute == 19 ) || (current_time.minute == 20 )); du solltest den ";" nach dem if weggeben außerdem würde ich die oder-bedingung noch in eine klammer kapseln. if ((Mail_Trigger_Enable) && (current_time.second >= 00) && ( ( current_time.minute == 19 ) || (current_time.minute == 20 ) ) ) lg andi
Habe mir dein Problem zwar nicht näher angesehen... Aber was mir auf jeden Fall sofort ins Auge stach ist diese neue Variante in der Schreibweise von >Standard< Zitat: "Standtart" Da schüttelts den Compiler wahrscheinlich genauso wie mich ;-) Was ist an dem Wort eigentlich so schwierig, dass es in jedem zweiten Post mit "t" am Ende geschrieben wird? Nichts für ungut und nicht böse sein...
>"Standtart"
Sieht aus wie "Schandtat"...
Es wird komplett ohne "t" geschrieben...
>If Schleife. Das ist keine Schleife (ausser, wenn man noch ein "goto" irgendwo einfügt, das auf den Anfang der ABFRAGE einen Sprung verursacht.) >if ((Mail_Trigger_Enable) && (current_time.second >= 00) && (current_time.minute == 19 ) || (current_time.minute == 20 )); Da fehlt ein Klammernpaar. Wo, verrate ich aber nicht!
Wie der zweite Poster schon schrieb: das ";" nach der if-Bedingung beendet die if-Schleife direkt nach der Bedingung, das nachfolgend in Klammern gekapselte gehört nicht mehr zum if.
hast ja recht. :) Aber wie heist das dann, was aufgrund der Abfrage ausgeführt wird?
Vergleich, Entscheidung, Abfrage. Such dir was aus. Das Wesen einer Schleife liegt nun mal darin, dass Dinge wiederholt werden. Und das ist bei einem if nun mal nicht der Fall. Ein if wählt einen von 2 möglichen Programmpfaden aus.
> Was ist an dem Wort eigentlich so schwierig, dass es in jedem > zweiten Post mit "t" am Ende geschrieben wird? Die Standart kann durch argaiV(*) deutlich verbessert werden. (*) bitte rumdrehen. Richtig rum lässt mich das Forum die Nachricht nicht abschicken.
Danke ersteinmal für eure Hilfe, (und für die kleine Rechtschreibstunde:-)) habe eine elegantere Lösung gefunden. Und zwar gibt es in der Software Delay Befehle und die habe ich einfach eingebaut und siehe da es geht. Manchmal muss halb etwas genauer hinschauen. Hier noch mein Code, vielleicht hilft es jemanden weiter: Kann mir nur noch jemand sagen wie ich da Problem umgehe, daß jedesmal wenn ich den Server neueinschalte eine Mail verschickt wird? if ((Mail_Trigger_Enable) && (CheckDelay_sec(MAIL_Timer))) { if (mail_state == 0) { if (vars.type_int[MAILFLAGS_ADDR] != 1) { cli(); printf("MailTrigger\n,%"); sendmail(packet, 0); sei(); MAIL_Timer = SetDelay_sec(120); mail_state = 1; } } else // versand wurde getriggert { if (vars.type_int[MAILFLAGS_ADDR] == 0) mail_state = 0; } } Danke für eure Hilfe Mirko
>Kann mir nur noch jemand sagen wie ich da Problem umgehe, daß jedesmal >wenn ich den Server neueinschalte eine Mail verschickt wird? Pack deinen Mailversand an den Programmanfang...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.