mit HTML Daten aus einer Schleife weiter arbeiten

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

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