Sobrescribir datos de un fichero - Arduino (librería SD)

Buenas!

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.

¿Cómo lo haríais?

Muchas gracias.

Sería más largo ya que tienes que rescribir todo, pero esta sería la forma más práctica de "limpiar" un fichero (solo se puede de forma completa):

File fichero = SD.open("algo.txt", FILE_WRITE | O_TRUNC);

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.

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):

File fichero = SD.open("algo.txt", FILE_WRITE | O_TRUNC);

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?

Exactamente. Lo "trunca" a longitud cero.

noter:
Exactamente. Lo "trunca" a longitud cero.

De acuerdo. Muchas gracias!