Перевод кода с PHP на C#
Формулировка задачи:
Здравствуйте, необходима помощь с переводом кода с PHP на C#
За помощь отблагодарю.
<?php define('CRYPT_KEY', '19800216'); define('DEBUG_MODE',true); class Inventory { var $type; var $size; var $maxSize; var $no; var $crc; var $items = array(); } function getSignedValue($value) { $unpacked = unpack('L', pack ('l', $value)); return ($unpacked[1]); } function computeCrc ( $inventory ) { $crc = $inventory->type; foreach ($inventory->items as $item) { $itemAttrCount = count($item); for ($i = 0 ; $i < $itemAttrCount ; $i++) { if ($i != 0 && $i != 10) { $crc += $item[$i]; } } } return getSignedValue($crc); } function loadInventory ( $maxSize, $no, $input ) { $inventory = new Inventory(); $inventory->rawData = $input; $data = explode (';', $input); $dataCount = count($data); $inventory->no = $no; $inventory->maxSize = $maxSize; $inventory->type = $data[0]; $inventory->size = $data[1]; $inventory->crc = $data[$dataCount - 1]; for ($i=0; $i < $inventory->maxSize ;$i++) { $inventory->items[$i] = null; } for ($i = 2 ; $i < $dataCount - 1 ; $i++ ) { $item = explode (',', $data[$i]); $inventory->items[$item[0]] = $item; } $computedCrc = computeCrc($inventory); if ($inventory->crc != $computedCrc) { if (DEBUG_MODE) { echo '<hr><b><font color=red>Error in CRC Check !!</font></b></br>'; echo '<br /><li>CRC Diff :<b> <font color="red">'.$inventory->crc.'</font> Vs<font color="red"> '.$computedCrc.'</font> </b>'; echo '<hr>'; } //return null; return $inventory; } else { return $inventory; } } function encrypt($input, $key) { $keyLen = strlen($key); $inputLen = strlen($input); $result = ''; for ($i = 0 ; $i < $inputLen ; $i++ ) { $result .= chr(ord($input[$i]) + ord($key[$i % $keyLen])); } return $result; } function decrypt($input, $key) { $keyLen = strlen($key); $inputLen = strlen($input); $result = ''; for ($i = 0 ; $i < $inputLen ; $i++ ) { $result .= chr(ord($input[$i]) - ord($key[$i % $keyLen])); } return $result; } function loadEncodedInventory($cryptedInv, $key) { list($maxSize,$no,$cryptedInv) = split ('[@#]', $cryptedInv, 3); $decypheredInv = decrypt($cryptedInv, $key); $inventory = loadInventory($maxSize,$no,$decypheredInv); return ($inventory); } function addItemsToInventory($inventory, $itemList) { $itemAssigned = 0; for ($i=0; (($i < $inventory->maxSize) && ($itemAssigned < count($itemList))) ; $i++) { if ($inventory->items[$i] == null) { $inventory->items[$i] = array ($i, $itemList[$itemAssigned][0], $itemList[$itemAssigned][1],$itemList[$itemAssigned][2],$itemList[$itemAssigned][3],$itemList[$itemAssigned][4],$itemList[$itemAssigned][5],$itemList[$itemAssigned][6],$itemList[$itemAssigned][7],$itemList[$itemAssigned][8],$itemList[$itemAssigned][9]); $itemAssigned++; } } if ($itemAssigned == count($itemList)) { } else { return false; } $inventory->size += $itemAssigned; $inventory->crc = computeCrc($inventory); $inventory->rawData = $inventory->type.';'.$inventory->size.';'; $itemRawData = array(); for ($i=0; $i < $inventory->maxSize ; $i++) { if ($inventory->items[$i] != null) { $itemRawData[] = implode (',',$inventory->items[$i]); } } $inventory->rawData .= implode(';',$itemRawData); $inventory->rawData .= ';'.$inventory->crc; return true; } function getEncodedInventory($inventory,$key) { $output = $inventory->maxSize. '@'.$inventory->no. '#'.encrypt($inventory->rawData, $key); return $output; } function extractItemFromInventory($inventory, $item) { $copy = array(); $extract = array(); $k = 0; for($i=0; $i < $inventory->maxSize; $i++) { if($inventory->items[$i][1] != $item) { $copy[$k] = $inventory->items[$i]; $k++; } else { $extract[0] = $inventory->items[$i]; } } $inventory->items = $copy; if(isset($extract[0])) { $inventory->size -= 1; $inventory->crc = computeCrc($inventory); $inventory->rawData = $inventory->type.';'.$inventory->size.';'; $itemRawData = array(); for ($i=0; $i < $inventory->maxSize ; $i++) { if ($inventory->items[$i] != null) { $itemRawData[] = implode (',',$inventory->items[$i]); } } $inventory->rawData .= implode(';',$itemRawData); $inventory->rawData .= ';'.$inventory->crc; return true; return $extract; } else { return false; } } ?>
Решение задачи: «Перевод кода с PHP на C#»
textual
Листинг программы
class Inventory { var $type; var $size; var $maxSize; var $no; var $crc; var $items = array(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д