سؤال

لدي رمز 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).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top