File.seek()

De ArduWiki
Revisión del 14:12 15 jun 2019 de Lucario448 (Discusión | contribuciones) (Página creada con «== Descripción == Coloca el "cursor" del archivo en la posición dada. '''0''' para volver al inicio, File.size() para colocarse al final. == Sintaxis == <pre> archiv...»)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Descripción

Coloca el "cursor" del archivo en la posición dada. 0 para volver al inicio, File.size() para colocarse al final.

Sintaxis

archivo.seek(pos);

Parámetros

pos
la posición (en bytes) que se desea establecer en el "cursor" (unsigned long).

Retorna

true si fue posible cambiar dicha posición; false en caso contrario (bool). Puede fallar si el valor ingresado no comprende el rango entre cero y el tamaño actual del archivo.

Advertencias

  • Esta función siempre fallará si la instancia representa un directorio o carpeta; o si el archivo no está abierto.

Comentarios

Se habla de un "cursor" posicionado en bytes porque la librería trata internamente los archivos como vectores/matrices de tipo byte, y con la posibilidad de crecer automáticamente según la necesidad.

Lo que hace esta función es cambiar el índice (como el de un vector/matriz) al cuál se quiere acceder la próxima vez; para así recuperar (File.read() o File.peek()) el valor almacenado en dicho lugar, o modificarlo (File.write()/File.print()).

Ejemplo

bool leerRegistro(Registro* r, unsigned int posicion) {

  if (archivo.seek(posicion * sizeof(r))) {
    return archivo.read(r, sizeof(r)); // Si se logra leer algo, equivale a retornar true
  }

  return false;
}

Vea también


Referencias