Go Down

Topic: No puedo obtener variables de un string (Read 365 times) previous topic - next topic

mathias1994

Jul 06, 2018, 12:58 am Last Edit: Jul 06, 2018, 02:20 am by mathias1994 Reason: Titulo editado
Hola a todos necesito que me ayuden a poder tener 2 variables de un string ya que e buscado las funciones pero no las entiendo muy bien.
Yo quiero que a partir de un string pueda sacar 2 variables con nombre de usuario y contraseña que son variables.

string: setting?ssid=mathias&passwd=12345

quiero obtener esto
variable1:mathias
variable2:12345

e intentado con indexOf pero me devuelve -1 les dejo el codigo


Code: [Select]
void cliente(){
WiFiClient client = server.available();
if (!client) {
  return;
}

if (client)                                  // En caso afirmativo
    {  boolean currentLineIsBlank = true;
       while (client.connected())
         { if (client.available())           // Hay algo pendiente de leer
             { char c = client.read();
              if (readString.length() < 100) {  //almacena caracteres en string          
                     readString += c;
                    int nombre = readString.indexOf('?'+4);
                    int pass = readString.indexOf('&'+6);
                    int signo = readString.indexOf('=');
                    String ssid = readString.substring(nombre,signo);
                    String passwd = readString.substring(pass);
                    }    
                     if (c == '\n') {      //si HTTP a terminado
                   
                     }

       client.print("<!DOCTYPE HTML>\r\n<html>pagina de configuracion de conexion wifi");
      client.println("<p>");
      client.println(st);
      client.println("</p><form method='get' action='setting'><label>SSID: </label><input name='ssidd' length=32><input name='passs' length=64><input type='submit'></form>");
      client.print("</html>");
      break;  
      if (c == '\n')
                    currentLineIsBlank = true;
               else if (c != '\r')
                    currentLineIsBlank = false;
            } // if (client.available
         }   // WHile
      delay(40);      // dar tiempo
    }
}


sino una manera de poder leer el textbox y guardarlo en una variable char. espero que me ayuden muchas gracias.

surbyte


Kike_GL

Deberias usar el motodo substring(). Consulta arduwiki para saber mas
Saludos, Kike_GL

mathias1994

Muchas gracias a todos por contestar, estuve leyendo indexof, substring y eso pero no puedo hacer el código me podrían poner uno de ejemplo a si lo miro y  veo como es muchas gracias.

surbyte

google: Arduino substring o arduino indexof y tendras tus ejemplos.

mathias1994

OK muchas gracias! ya hace rato que vengo buscando en google y en todos esos lados si opte por estar en este foro es porque necesito ayuda de ustedes, pero igual muchas gracias por tu enorme cooperación !!!! @surbyte!!!!
creo que no cuesta nada dar un ejemplo a un novato y explicar bien las cosas!!

_jose_

Muchas gracias a todos por contestar, estuve leyendo indexof, substring y eso pero no puedo hacer el código me podrían poner uno de ejemplo a si lo miro y  veo como es muchas gracias.
El problema es que lo quereis todo "masticado" y asi no vas a aprender nada ni demuestras estar intentandolo.Que es lo que no has entendido exactamente de indexOf() y subString() ?

surbyte

#7
Jul 13, 2018, 01:52 am Last Edit: Jul 13, 2018, 01:59 am by surbyte
OK muchas gracias! ya hace rato que vengo buscando en google y en todos esos lados si opte por estar en este foro es porque necesito ayuda de ustedes, pero igual muchas gracias por tu enorme cooperación !!!! @surbyte!!!!
creo que no cuesta nada dar un ejemplo a un novato y explicar bien las cosas!!
Veamos tu comodidad y como nos mientes y esperas que nos sintamos culpables porque has buscado y no te ponemos un ejemplo, mira como la mentira tiene patas cortas.



Ese segundo que te marco es este link

Arduino -String substring Function

Y en el ves tus ejemplos

Ejemplo 1
Code: [Select]
String stringOne = "Content-Type: text/html";

  // substring(index) looks for the substring from the index position to the end:
  if (stringOne.substring(19) == "html") {
   }



Ejemplo 2

Code: [Select]
 String stringOne = "Content-Type: text/html";

  // you can also look for a substring in the middle of a string:
  if (stringOne.substring(14,18) == "text") {

  }


Ejemplo 3 con código completo

Code: [Select]
*
  String substring()

  Examples of how to use substring in a String

  created 27 Jul 2010,
  modified 2 Apr 2012
  by Zach Eveland

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/StringSubstring
*/

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // send an intro:
  Serial.println("\n\nString  substring():");
  Serial.println();
}

void loop() {
  // Set up a String:
  String stringOne = "Content-Type: text/html";
  Serial.println(stringOne);

  // substring(index) looks for the substring from the index position to the end:
  if (stringOne.substring(19) == "html") {
    Serial.println("It's an html file");
  }
  // you can also look for a substring in the middle of a string:
  if (stringOne.substring(14, 18) == "text") {
    Serial.println("It's a text-based file");
  }

  // do nothing while true:
  while (true);
}



Ahora dime que parte buscaste?
Lleva 1 segundo encontrarlo suponiendo que elijas primero el anterior que no conduce a nada.


Te acabo de demostrar que no lo hiciste.


Para terminar una aclaración:
Eres nuevo, si. Y por eso se te debe tener consideración especial, sinceramente no se porque deba ser el caso.

Que dicen las normas del foro. Antes de preguntar busca en Google

3. Buscar antes de postear

Intenta solucionar tu problema, o responde tu pregunta por ti mismo. Por ejemplo si te estas preguntando como conectar una serie de LED's a un registro 74HC595, intenta buscar en Google exactamente eso (agrega la palabra "Arduino" para obtener mejores resultados):



El ejemplo anterior arroja muchos resultados; tanto referencias a la documentación oficial (ingles) e imágenes que se pueden entender bien, como diagramas.  Lee algunos de ellos y tal vez logres responder tus dudas.
Si no te has molestado en hacer algo tan simple, y tus preguntas son tan comunes que indican que no te has tomado la molestia de buscar un poco por tu cuenta, no te sorprendas que alguien te mande a buscar en google y a que vengas a leer este hilo completo.
Si eres novato y crees haber  encontrado algo que no acabas de entender,  ve a la sección de documentación, donde encontrarás información para novatos y no tan novatos, como tutoriales, herramientas, publicaciones de libros, referencias, vídeo tutoriales, u otro tipo de material didáctico. Todos estos recursos publicados por miembros del foro en español completamente en español.

Go Up