سؤال
لدي رمز ChuckK هذا:
"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
(يتم تحديثه باستخدام بيثون كل دقيقة)
أريد تحويل السرعة والاتجاه إلى int (أو تعويم أفضل).
كيف يمكنني أن أفعل هذا؟
المحلول
يستخدم 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