File.print()

De ArduWiki
Revisión del 22:23 14 oct 2019 de Kike GL (Discusión | contribuciones) (Retorna)

Saltar a: navegación, buscar

Descripción

Escribe (al archivo) un dato mediante la representación textual de su valor, haciendo esta función útil para archivos de texto plano (ej.: .txt, .csv).

Si el "cursor" está posicionado al final del archivo (o alcanza dicho punto en el proceso), esta función lo hará crecer lo necesario para que todos los datos sean escritos. El tope de este crecimiento está en el espacio libre del "volumen" o al alcanzar los 4 GB (4294967295 bytes) de tamaño.

Si este "cursor" no está posicionado al final del archivo, entonces esta función sobrescribirá datos existentes (a partir de la posición actual); lo que hace un tanto difícil editar de esta manera texto en el archivo (imagínalo como un editor de texto dónde la tecla de retroceso no funciona, siempre en modo sobrescribir sin que se pueda cambiar al típico modo insertar, y que cada salto de línea en medio de algo borre dos caracteres en la nueva línea).

Nota: ya que es una implementación de Stream, los detalles mencionados en Stream.print() y Serial.print() también aplican aquí.


Sintaxis

File archivo = SD.open("archivo.txt", FILE_WRITE);
archivo.print(cadena);
archivo.print(variable[, formato]);

Parametros

cadena
Un string o String. También se valen literales (texto entrecomillado) y constantes F().
variable
variable a evaluar. Esta variable puede ser de cualquier tipo.
formato
por defecto es DEC, pero puedes también usar HEX, OCT o BIN. También puede ser un valor del 0 al 7 si variable es un punto flotante, representaría la cantidad de cifras decimales a imprimir (2 por defecto).

Tip: Equivaldría al File.write() de un solo byte si variable es de tipo char.


Retorna

La cantidad de caracteres que se llegaron a escribir en el proceso (int). Puede fallar si el archivo no puede crecer, si no está abierto o no fue abierto para escritura.

Comentarios

Los literales de caracteres y cadenas también pueden representar caracteres especiales que son difíciles o imposibles de expresar de otra manera en el código fuente de un programa, como "nueva linea" (\n) o "tab" (\t). Estos caracteres especiales son todos precedidos por un carácter de barra diagonal inversa (\).

Codigos de escape
Código Descripción ASCII DEC
\n nueva línea LF 10
\r retorno de carro CR 13
\t tabulacion horizontal HT 9
\v tabulacion vertical VT 11
\b retroceso BS 8
\f salto de página FF 12
\a alerta (pitido) BELL 7
\' comilla simple ' 39
\" comillas dobles " 34
\? signo de interrogación ? 63
\\ barra invertida \ 47

Advertencias

  • Esta función siempre fallará si la instancia representa un directorio o carpeta.

Ejemplo

// Loggear lecturas analógicas
while (!digitalRead(boton)) {
  archivo.println(analogRead(A0)); // Ya sé que no es print() exactamente, pero se usa de la misma manera.
}
archivo.close();

Vea también


Referencias