2010-07-15 22 views
6

ho questo codice ChucK:interi lettura da un file in 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; 

Il file di testo contiene:

10 
12 

(è aggiornato con Python ogni minuto)

voglio convertire la velocità e la direzione in int (o meglio galleggiare).

Come posso fare questo?

risposta

6

Utilizzare atoi e atof nella libreria Std. Diciamo che si desidera tradurre 0-127 (velocità MIDI) ad un galleggiante tra 0 e 1.0 (molto più conveniente per i generatori di unità):

Std.atoi(fio.readLine()) => int midi_velocity; 
midi_velocity/127.0 => float velocity; 
<<<velocity>>>; 

dovrebbe stampare 0.078740 :(float) per un ingresso di 10.

o se si vuole solo andare dritto a stare a galla:

Std.atof(fio.readLine()) => float velocity; 
<<<velocity>>>; 

che stampa 10.000000 :(float).