Diferencia entre revisiones de «Stream.readStringUntil()»
De ArduWiki
(→Vea también) |
(→Referencias) |
||
Línea 31: | Línea 31: | ||
== Referencias == | == Referencias == | ||
− | [[Category: | + | [[Category:Stream]] |
Revisión actual del 18:29 6 may 2019
Contenido
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