Estoy usando la librería SD.h para gestionar ciertos ficheros que tengo almacenados en la SD. En concreto, tengo un fichero que tiene la siguiente estructura:
sondaA-12000
sondaB-100
sondaC-600000
Lo que quiero hacer es que dado un alias determinado almacenado en un char array (p.e: sondaB) y un nuevo intervalo de muestreo almacenado en un unsigned long (p.e: 5000) pues el fichero quede de la siguiente manera:
sondaA-12000
sondaB-5000
sondaC-600000
Lo primero que hago es buscar la letra identificativa del alias, en este ejemplo la ‘B’, pero una vez encontrada esta la idea seria borrar el 100 y escribir el 5000.
Notad que el código tendría que ser general para cualquier alias y intervalo de muestreo.
Idea: una vez encontrada la letra identificativa, podría borrar (no se si se puede hacer) todo el contenido que hay entre el ‘-’ y el salto de línea ‘\n’, pero a la hora de escribir el nuevo intervalo de muestreo tendría problemas, ya que esta librería (en principio) no puede situarse entre el ‘-’ y el ‘\n’ para escribir caracteres.
Lucario448:
Sería más largo ya que tienes que reescribir todo, pero esta sería la forma más práctica de "limpiar" un fichero (solo se puede de forma completa):
No recuerdo si la opción O_TRUNC se llama exactamente así; en caso de haberme equivocado, te darás cuenta ya que no dejaría compilar.
Creo que lo haré de esta forma ya que es la más sencilla.
* O_TRUNC - If the file exists and is a regular file, and the file is
* successfully opened and is not read only, its length shall be truncated to 0.
Este comentario está incluido en el fichero SdFile.cpp
He estado buscando informació sobre O_TRUNC. ¿Lo que hace es borrar todo el contenido del fichero y situarse al principio de este para empezar la escritura no?
Kane12:
He estado buscando informació sobre O_TRUNC. ¿Lo que hace es borrar todo el contenido del fichero y situarse al principio de este para empezar la escritura no?