void loop()
{
String AnzahlTreffer = "";
String GespielteZahlen = "";
String GezogeneZahlen = "";
byte Treffer = 0;
String Auswertung = "";
// neue Anfrage
EthernetClient Client = server.available();
if (Client)
{
// solange der Klient verbunden ist ...
while (Client.connected())
{
if (Client.available())
{
// auf Eingabe warten ...
char Zeichen = Client.read();
// ... und die Antwort zusammenbauen
Auswertung += Zeichen;
// \n = Seite vom Clienten vollständig geladen
if (Zeichen == '\n')
{
// HTTP-Anforderung senden
Client.println("HTTP/1.1 200 OK");
Client.println("Content-type:text/html");
// Leerzeile zwingend erforderlich
Client.println();
Client.println(F(""));
Client.println(F(""));
Client.println(F("
"));
Client.println(F("Lottozahlen
"));
/*
IP-Adressen anzeigen
Client.remoteIP() -> eigene IP
Ethernet.localIP() -> IP des Ethernet-Shields
*/
Client.print(F("Eigene IP: "));
Client.print(Client.remoteIP());
Client.print(F(""));
Client.print(F("
IP des Ethernet-Shields: "));
Client.print(Ethernet.localIP());
Client.print(F(""));
Client.println(F("
"));
// Buttons
Client.print(F("
"));
/*
ein Klick auf einen der Buttons erzeugt eine GET-Anweisung in der Form
GET /a HTTP/1.1 -> Button anzeigen auswerten
GET /s HTTP/1.1 -> Button speichern auswerten
GET /e HTTP/1.1 -> Button entfernen auswerten
indexOf durchsucht den String nach diesen Zeichen (> 0 = Zeichen gefunden)
*/
// Auswertung der Anzeige muss vor dem Schließen der Seite erfolgen
if (Auswertung.indexOf("a") > 0)
{
// Datei öffnen und Zahlen anzeigen
ZiehungLotto = SD.open("Lottozahlen.txt");
if (ZiehungLotto)
{
// solange sich Zeilen in der Datei befinden ...
while (ZiehungLotto.available())
{
// ... werden sie gelesen und ausgegeben
Client.write(ZiehungLotto.read());
}
// Datei schließen
ZiehungLotto.close();
}
else Client.println(F("Die Datei ist leer oder nicht vorhanden!"));
}
Client.println(F(""));
// Zeit, um die Antwort zu übertragen
delay(1);
// Verbindung beenden
Client.stop();
// entfernen
if (Auswertung.indexOf("e") > 0)
{
if (SD.exists("Lottozahlen.txt"))
{
// Datei entfernen
SD.remove("Lottozahlen.txt");
}
}
// speichern
if (Auswertung.indexOf("s") > 0)
{
// Ziehung der "angekreuzten" Zahlen
Ziehung();
ZahlenSortieren(LottoZahl, 6);
// String GespielteZahlen aus den Elementen des Arrays LottoZahl
// zusammensetzen
for (int i = 0; i < Anzahl; i++)
{
GespielteZahlen = GespielteZahlen + LottoZahl[i] + " ";
SpielZahl[i] = LottoZahl[i];
}
// Ziehung der Lottozahlen
Ziehung();
// Zahlen sortieren
ZahlenSortieren(LottoZahl, 6);
// Vergleichen der Elemente der Arrays SpielZahl und LottoZahl
for (int i = 0; i < Anzahl; i++)
{
for (int ii = 0; ii < Anzahl; ii++)
{
// Übereinstimmung gefunden -> Treffer um 1 erhöhen
// AnzahlTreffer: String für übereinstimmende Zahlen erzeugen
if (SpielZahl[i] == LottoZahl[ii])
{
AnzahlTreffer = AnzahlTreffer + SpielZahl[i] + " ";
Treffer ++;
}
}
}
// String GezogeneZahlen aus den Elementen des Arrays LottoZahl
// zusammensetzen
for (int i = 0; i < Anzahl; i++)
{
GezogeneZahlen = GezogeneZahlen + LottoZahl[i] + " ";
}
/*
Datei zum Schreiben (FILE_WRITE) öffnen
wenn sie noch nicht existiert, wird sie erstellt
*/
ZiehungLotto = SD.open("Lottozahlen.txt", FILE_WRITE);
if (ZiehungLotto)
{
// aktuelle Zeit holen
DateTime aktuell = rtc.now();
char Datum[] = "DD.MM.YYYY";
ZiehungLotto.print(aktuell.toString(Datum));
// Zeit schreiben
char Zeit[] = " Uhrzeit: hh:mm:ss";
ZiehungLotto.println(aktuell.toString(Zeit));
ZiehungLotto.println(F("
"));
// Daten in die Datei schreiben
ZiehungLotto.println(F("Gespielte Zahlen"));
ZiehungLotto.println(GespielteZahlen);
ZiehungLotto.println(F("
"));
ZiehungLotto.println(F("---------------------------------------"));
ZiehungLotto.println(F("
"));
ZiehungLotto.println(F("Gezogene Zahlen"));
ZiehungLotto.println(GezogeneZahlen);
ZiehungLotto.println(F("
"));
ZiehungLotto.println(F("---------------------------------------"));
ZiehungLotto.println(F("
"));
// keine Treffer
if (Treffer == 0) ZiehungLotto.println(F("keine Treffer!"));
// getroffene Zahlen anzeigen
else
{
ZiehungLotto.print(Treffer);
ZiehungLotto.print(F(" Treffer: "));
ZiehungLotto.print(AnzahlTreffer);
}
ZiehungLotto.println(F("
"));
ZiehungLotto.println(F("---------------------------------------"));
ZiehungLotto.println(F("
"));
// Datei schließen
ZiehungLotto.close();
}
}
}
}
}
}
}