Lire des entiers à partir d'un fichier dans Chuck
Question
J'ai ce code Chuck :
"examples/vento.txt" => string filename;
FileIO fio;
// open a file
fio.open(filename, FileIO.READ);
// ensure it's ok
if(!fio.good()) {
cherr <= "can't open file: " <= filename <= " for reading..." <= IO.newline();
me.exit();
}
fio.readLine() => string velocity;
fio.readLine() => string direction;
Le fichier texte contient :
10
12
(il est mis à jour avec python toutes les minutes)
Je veux convertir la vitesse et la direction en int (ou mieux float).
Comment puis-je faire ceci?
La solution
Utiliser atoi
et atof
dans le Std
bibliothèque.Supposons que vous souhaitiez traduire de 0 à 127 (vitesse MIDI) en un flotteur compris entre 0 et 1,0 (beaucoup plus pratique pour les générateurs d'unités) :
Std.atoi(fio.readLine()) => int midi_velocity;
midi_velocity/127.0 => float velocity;
<<< velocity >>>;
devrait imprimer 0.078740 :(float)
pour une entrée de 10.
Ou si vous voulez simplement flotter directement :
Std.atof(fio.readLine()) => float velocity;
<<< velocity >>>;
qui imprime 10.000000 :(float)
.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow