Чтение целых чисел из файла в 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;
Текстовый файл содержит:
10
12
(он обновляется с помощью python каждую минуту)
Я хочу преобразовать скорость и направление в int (или лучше float).
Как я могу это сделать?
Решение
Воспользуйся atoi
и atof
в Std
библиотека.Допустим, вы хотите перевести значение от 0-127 (скорость MIDI) в значение с плавающей точкой между 0 и 1.0 (гораздо удобнее для генераторов единиц измерения).:
Std.atoi(fio.readLine()) => int midi_velocity;
midi_velocity/127.0 => float velocity;
<<< velocity >>>;
следует напечатать 0.078740 :(float)
для ввода 10.
Или, если вы хотите просто отправиться прямиком в плавание:
Std.atof(fio.readLine()) => float velocity;
<<< velocity >>>;
который печатает 10.000000 :(float)
.
Не связан с StackOverflow