[Ri]Visual. della versione a partire dalla 'v' alla fine del nome della cartella

Grazie a tutti. Riporto la versione finale:

// Se il progetto è composto da più file nella cartella, la riga che segue
// si deve trovare nel file .ino con il nome uguale a quello della cartella:
char *percorso=__FILE__; // __FILE__ è una macro che fornisce il percorso
                         // completo del file, fino all'estensione.

void setup()
{
char *ver_ext=strrchr(percorso,'v'); // Viene cercata, partendo da destra, l'ultima lettera 'v'
                                     // nel nome del file, che identifica l'inizio della versione.
char ver[10]; // Viene dichiarata una stringa per scriverci la versione senza estensione.
byte n_car=strlen(ver_ext)-4; // Viene scritta in n_car la lunghezza della versione,
                              // tolti i 4 caratteri finali ".ino".
strncpy(ver, ver_ext, n_car); // Viene fatta una copia degli n_car caratteri
                              // da ver_ext (versione con estensione) a ver.
ver[n_car]='\0'; // ver viene terminata al carattere n_car, affinché i successivi ".ino"
                 // restino esclusi dalla stringa. Nota: l'n_car-esimo carattere ha indice
                 // n_car-1, perché il primo ha indice 0.
}

"Elementare, Watson!"
Il problema era mettere (e non mettere) gli asterischi nei posti giusti... :smiley:

Ciao a tutti
Pongo la domanda adesso, così se qualcuno spesso soffre d'insonnia come me :frowning: questa notte non si annoierà :slight_smile:

Come già detto, il problema della visualizzazione della versione è completamente risolto, ma mi sono chiesto se i calcoli per arrivare a scrivere la versione nella stringa ver possano essere eseguiti dal compilatore e, poi, programmata solo la stringa ver risultante.

Credo che la risposta sia no, ma mi piacerebbe approfondire sul tema.

Grazie
Gianluca

Datman:
Credo che la risposta sia no, ma mi piacerebbe approfondire sul tema.

Anche secondo me la risposta è no, ma sono curioso nel caso dovessi sbagliarmi.

Per farlo, servirebbe poter inserire un programma nel precompilatore o tra il pre-compilatore e il compilatore, visto che il risultato non è immediato ma frutto di un'elaborazione.
Si fosse trattato di prendere il nome del file o della cartella in cui è contenuto sarebbe stato differente, ma con un'elaborazione arbitraria nel mezzo, ho i miei dubbi si possa fare.

Ai posteri contestare il mio ragionamento mostrandoci la via per farlo.

Maurizio