/** * разбираем комбинацию * Документ 36 // 4 int кол-во коэффициентов // 8 double коэффициенты // Сначала идут коэффициенты для загружений, // потом для комбинаций * * @param String $s * @return Array */ function get_from_spr($s) { $pos = 0; //кол-во коэффициентов в комбинации $koef_count = bytes2un_int(substr($s, $pos, 4)); $pos += 4; $this->factors = array(); for ($i = 1; $i <= $koef_count; $i++) { $this->factors[$i] = bytes2double(substr($s, $pos, 8), 1, 0); $pos += 8; } }
$rsu->view = $view; ###### F22 ####### //читаем 4 байта - количество загружений в данной формуле $L_count = bytes2un_int(fread($fk, 4)); //8 байт - значение критерия $rsu->criterion_value = sprintf("%01.2f", bytes2double(fread($fk, 8), 1, 0)); // echo "RSU->criterion_value = ". $rsu->criterion_value ."<br/>"; //для каждого загружения в формуле читаем номер и значение множителя //записываем в массив $L_name_mas = array(); for ($k = 1; $k <= $L_count; $k++) { $L_name_mas[] = bytes2un_int(fread($fk, 4)); } $L_koef_mas = array(); for ($k = 1; $k <= $L_count; $k++) { $L_koef_mas[] = bytes2double(fread($fk, 8), 1, 0); } // echo "L_name_mas = ";print_r($L_name_mas);echo '<br/>'; // echo "L_koef_mas = ";print_r($L_koef_mas);echo '<br/>'; for ($k = 0; $k < $L_count; $k++) { if ($L_koef_mas[$k] >= 0 && $k > 0) { $rsu->formula .= '+'; } if (abs($L_koef_mas[$k] - 1) > 0.001) { $rsu->formula .= $L_koef_mas[$k] . '*'; } $rsu->formula .= 'L' . $L_name_mas[$k]; } //заменяем в L1-1*L2 (-1*) на (-) $rsu->formula = str_replace('-1*', '-', $rsu->formula); // echo "RSU->Formula = ". $rsu->formula ."<br/>";