Diferencia entre revisiones de «Stream.readStringUntil()»

De ArduWiki
Saltar a: navegación, buscar
(Referencias)
 
(No se muestra una edición intermedia del mismo usuario)
Línea 27: Línea 27:
  
 
== Vea también ==
 
== Vea también ==
* [[Stream.flush()]]
+
<categorytree mode=all>Stream</categorytree>
* [[Stream.find()]]
 
* [[Stream.findUntil()]]
 
* [[Stream.peek()]]
 
  
 
== Referencias ==
 
== Referencias ==
  
[[Category:Funciones]]
+
[[Category:Stream]]

Revisión actual del 18:29 6 may 2019

Descripción

Lee caracteres y los coloca en un String. La función termina si se ha encontrado el caracter terminador (no lo incluye en la lectura pero sí lo descarta/ignora del flujo), o el tiempo de espera (ver Stream.setTimeout()) se ha agotado.

Sintaxis

objetoString.readStringUntil(caracter);

Parametros

caracter
el caracter terminador (char).

Retorna

El objeto String resultante de la lectura.

Advertencias

  • Hay un "bug" o fallo con esta función: si el flujo de entrada es constante (tiempo de espera nunca se agota) o lo suficientemente grande, y nunca se encuentra el caracter terminador; se corre el riesgo de colgar completamente el programa. La razón se debe a que, conceptualmente, String es ilimitado en tamaño; pero como la SRAM no es así, eventualmente el programa llegará a colapsar.

Ejemplo

if (archivo.available()) {
  Serial.print(F("Linea de texto leida: \""));
  Serial.print(archivo.readStringUntil('\r')); // Ojo con el tamaño, que puede que de aquí no pase u ocurra comportamiento indefinido.
  Serial.println('\"');
  archivo.read(); // Descarta el '\n' que suele venir con el '\r'
}

Vea también


Referencias