Leitura ints a partir de um arquivo de Chuck
Pergunta
Eu tenho esse ChucK código:
"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;
O arquivo de texto contém:
10
12
(ele é atualizado com python a cada minuto)
Eu quero converter a velocidade e a direção para int (ou melhor, float).
Como posso fazer isso?
Solução
Utilização atoi
e atof
no Std
a biblioteca.Vamos dizer que você deseja converter de 0-127 MIDI (velocidade) para um float entre 0 e 1,0 (muito mais conveniente para a unidade de geradores):
Std.atoi(fio.readLine()) => int midi_velocity;
midi_velocity/127.0 => float velocity;
<<< velocity >>>;
deve imprimir 0.078740 :(float)
para uma entrada de 10.
Ou se você quer apenas ir direto para float:
Std.atof(fio.readLine()) => float velocity;
<<< velocity >>>;
que imprime 10.000000 :(float)
.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow