hallo Leute,
ich habe eine for Schleife in der die Argumente aus einer HTML Übergabe rausgezwiebelt werden.
Nun meine Frage wie kann ich mit den Daten außerhalb der Schleife weiterarbeiten?
server.on("/daten", []() {
Serial.print("ges. Arg.: ");
Serial.println(server.args());
for (uint8_t i = 0; i < server.args(); i++) {
int AGN = i;
String ARG = server.argName(i);
String INH = server.arg(i);
Serial.print("Arg. Nr.: ");
Serial.println(AGN);
Serial.print("Arg.: ");
Serial.println(ARG);
Serial.print("Inhalt: ");
Serial.println(INH);
}
server.send(200, "text/plain", "OK");
});
ich möchte z. B. die Übergeben Daten an einem Display anzeigen lassen.
LG Immanuel
combie
August 27, 2019, 4:17pm
#2
Du wirst dir ein Zwischenlager außerhalb der Funktion anlegen müssen.
Sonst bekommst du die Daten aus der Lambda Funktion nicht raus.
Hallo,
du könntest für deine Variablen ARG und INH globale Arrays anlegen und die in der Schleife abhängig von i füllen. Dann kannst Du sie später überall benutzen.
Heinz
foto2004:
Nun meine Frage wie kann ich mit den Daten außerhalb der Schleife weiterarbeiten?
Bei der Arbeit mit Variablen ist wichtig, auf deren „Sichtbarkeit“ zu achten. Eine Variable existiert nur innerhalb des Blocks (durch geschweifte Klammern begrenzt), in dem sie deklariert wurde.
Die Lösung ist also, globale Variablen zu verwenden. Wurde ja auch schon vorgeschlagen.
Gruß
Gregor
Hi
Oder die gerade ausgelesene Variable direkt anzuzeigen - dann ist's aber Essig Diese durchzuscrollen - weil dann gibt's Die nicht mehr.
MfG
Ich Persönlich würde und habe bereits in ähnlichen Fällen die selbe Lösung wie Heinz nutzen da dies relativ leicht zu programmieren ist
Guten Morgen, danke für eure Unterstützung.
ich habe es folgendermaßen gelöst:
String HTMLarg[7];
String HTMLdat[7];
int zal;
void setup(){
......
// Test HTML-Aray
server.on("/daten", []() {
Serial.print("Anzahl der Argumente: ");
Serial.println(server.args());
Serial.println();
for (uint8_t i = 0; i < server.args(); i++) {
int AGN = i;
String ARG = server.argName(i);
String INH = server.arg(i);
HTMLarg[i] = ARG;
HTMLdat[i] = INH;
zal = server.args();
}
int count;
for (count=0;count<zal;count++) {
Serial.print("Argument Nummer: ");
Serial.println(count);
Serial.print("HTML-Argument: ");
Serial.println(HTMLarg[count]);
Serial.print("HTML-Daten: ");
Serial.println(HTMLdat[count]);
Serial.println();
Serial.println();
}
server.send(200, "text/plain", "OK");
});
.........
}
Somit kann ich mit den Daten weiterarbeiten.
LG Immanuel