Go Down

Topic: mit HTML Daten aus einer Schleife weiter arbeiten (Read 180 times) previous topic - next topic

foto2004

Aug 27, 2019, 06:11 pm Last Edit: Aug 28, 2019, 07:54 am by foto2004
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?

Code: [Select]
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

Du wirst dir ein Zwischenlager außerhalb der Funktion anlegen müssen.
Sonst bekommst du die Daten aus der Lambda Funktion nicht raus.
Wollen, ist wie machen.
Nur nicht so effektiv!

Rentner

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

gregorss

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
Mir wird übel. (Uwe)

postmaster-ino

Hi

Oder die gerade ausgelesene Variable direkt anzuzeigen - dann ist's aber Essig Diese durchzuscrollen - weil dann gibt's Die nicht mehr.

MfG
Dein Problem, Dein Sketch, Deine Bilder.
Ob ich ohne Diese an Deinem Problem arbeiten will, entscheide aber immer noch ich.
Große Buchstaben? Immer wieder, neben Punkt und Komma, gerne gesehen.

Ace_Dark

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

foto2004

Guten Morgen, danke für eure Unterstützung.

ich habe es folgendermaßen gelöst:

Code: [Select]


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

Go Up