Перевод кода с PHP на C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, необходима помощь с переводом кода с PHP на C#
Листинг программы
  1. <?php
  2. define('CRYPT_KEY', '19800216');
  3. define('DEBUG_MODE',true);
  4. class Inventory {
  5. var $type;
  6. var $size;
  7. var $maxSize;
  8. var $no;
  9. var $crc;
  10. var $items = array();
  11. }
  12. function getSignedValue($value) {
  13. $unpacked = unpack('L', pack ('l', $value));
  14. return ($unpacked[1]);
  15. }
  16. function computeCrc ( $inventory ) {
  17. $crc = $inventory->type;
  18. foreach ($inventory->items as $item) {
  19. $itemAttrCount = count($item);
  20. for ($i = 0 ; $i < $itemAttrCount ; $i++) {
  21. if ($i != 0 && $i != 10) {
  22. $crc += $item[$i];
  23. }
  24. }
  25. }
  26. return getSignedValue($crc);
  27. }
  28. function loadInventory ( $maxSize, $no, $input ) {
  29. $inventory = new Inventory();
  30. $inventory->rawData = $input;
  31. $data = explode (';', $input);
  32. $dataCount = count($data);
  33. $inventory->no = $no;
  34. $inventory->maxSize = $maxSize;
  35. $inventory->type = $data[0];
  36. $inventory->size = $data[1];
  37. $inventory->crc = $data[$dataCount - 1];
  38. for ($i=0; $i < $inventory->maxSize ;$i++) {
  39. $inventory->items[$i] = null;
  40. }
  41. for ($i = 2 ; $i < $dataCount - 1 ; $i++ ) {
  42. $item = explode (',', $data[$i]);
  43. $inventory->items[$item[0]] = $item;
  44. }
  45. $computedCrc = computeCrc($inventory);
  46.  
  47. if ($inventory->crc != $computedCrc) {
  48. if (DEBUG_MODE) {
  49. echo '<hr><b><font color=red>Error in CRC Check !!</font></b></br>';
  50. echo '<br /><li>CRC Diff :<b> <font color="red">'.$inventory->crc.'</font> Vs<font color="red"> '.$computedCrc.'</font> </b>';
  51. echo '<hr>';
  52. }
  53. //return null;
  54. return $inventory;
  55. }
  56. else {
  57. return $inventory;
  58. }
  59. }
  60. function encrypt($input, $key) {
  61. $keyLen = strlen($key);
  62. $inputLen = strlen($input);
  63. $result = '';
  64. for ($i = 0 ; $i < $inputLen ; $i++ ) {
  65. $result .= chr(ord($input[$i]) + ord($key[$i % $keyLen]));
  66. }
  67. return $result;
  68. }
  69. function decrypt($input, $key) {
  70. $keyLen = strlen($key);
  71. $inputLen = strlen($input);
  72. $result = '';
  73. for ($i = 0 ; $i < $inputLen ; $i++ ) {
  74. $result .= chr(ord($input[$i]) - ord($key[$i % $keyLen]));
  75. }
  76. return $result;
  77. }
  78. function loadEncodedInventory($cryptedInv, $key) {
  79. list($maxSize,$no,$cryptedInv) = split ('[@#]', $cryptedInv, 3);
  80. $decypheredInv = decrypt($cryptedInv, $key);
  81. $inventory = loadInventory($maxSize,$no,$decypheredInv);
  82. return ($inventory);
  83. }
  84. function addItemsToInventory($inventory, $itemList) {
  85. $itemAssigned = 0;
  86. for ($i=0; (($i < $inventory->maxSize) && ($itemAssigned < count($itemList))) ; $i++) {
  87. if ($inventory->items[$i] == null) {
  88. $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]);
  89. $itemAssigned++;
  90. }
  91. }
  92. if ($itemAssigned == count($itemList)) {
  93. } else {
  94. return false;
  95. }
  96. $inventory->size += $itemAssigned;
  97. $inventory->crc = computeCrc($inventory);
  98. $inventory->rawData = $inventory->type.';'.$inventory->size.';';
  99. $itemRawData = array();
  100. for ($i=0; $i < $inventory->maxSize ; $i++) {
  101. if ($inventory->items[$i] != null) {
  102. $itemRawData[] = implode (',',$inventory->items[$i]);
  103. }
  104. }
  105. $inventory->rawData .= implode(';',$itemRawData);
  106. $inventory->rawData .= ';'.$inventory->crc;
  107. return true;
  108. }
  109. function getEncodedInventory($inventory,$key) {
  110. $output = $inventory->maxSize.
  111. '@'.$inventory->no.
  112. '#'.encrypt($inventory->rawData, $key);
  113. return $output;
  114. }
  115. function extractItemFromInventory($inventory, $item) {
  116. $copy = array();
  117. $extract = array();
  118. $k = 0;
  119. for($i=0; $i < $inventory->maxSize; $i++)
  120. {
  121. if($inventory->items[$i][1] != $item)
  122. {
  123. $copy[$k] = $inventory->items[$i];
  124. $k++;
  125. }
  126. else
  127. {
  128. $extract[0] = $inventory->items[$i];
  129. }
  130. }
  131. $inventory->items = $copy;
  132. if(isset($extract[0])) {
  133. $inventory->size -= 1;
  134. $inventory->crc = computeCrc($inventory);
  135. $inventory->rawData = $inventory->type.';'.$inventory->size.';';
  136. $itemRawData = array();
  137. for ($i=0; $i < $inventory->maxSize ; $i++) {
  138. if ($inventory->items[$i] != null) {
  139. $itemRawData[] = implode (',',$inventory->items[$i]);
  140. }
  141. }
  142. $inventory->rawData .= implode(';',$itemRawData);
  143. $inventory->rawData .= ';'.$inventory->crc;
  144. return true;
  145. return $extract;
  146. }
  147. else {
  148. return false;
  149. }
  150. }
  151. ?>
За помощь отблагодарю.

Решение задачи: «Перевод кода с PHP на C#»

textual
Листинг программы
  1. class Inventory {
  2.     var $type;
  3.     var $size;
  4.     var $maxSize;
  5.     var $no;
  6.     var $crc;
  7.     var $items = array();
  8. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут