Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
wish_to_know

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

25.03.2013, 11:12. Показов 632. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане, прошу вашей помощи. В PHP ничего не понимаю, надо разбираться, а сроки поджимают. Помогите перевести следующий код на C#.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
 
class BlockBasedExternalSort {
        
        private $block;
        private $blockCount = 0;
        private $blockSize;
        private $fileDirectory;
        private $outputFile;
        private $blockIndex = 0;
        private $mergedBlocks = 0;
        private $queue;
        
        public function __construct($outputFile, $directory = '/tmp', $blockSize = 100000) {
                $this->outputFile = $outputFile;
                $this->fileDirectory = $directory;
                $this->blockSize = $blockSize;
        }
        
        public function addTerm($documentID, $termID) {
                if(!isset($this->block[$termID][$documentID])) {
                        $this->block[$termID][$documentID] = 1;
                } else {
                        $this->block[$termID][$documentID]++; 
                }
                $this->blockCount++;
                if($this->blockCount >= $this->blockSize) {
                        $this->writeBlock();
                }
        }
        
        public function merge() {
                for($i = 0; $i < $this->blockIndex; $i++) {
                        $reads[] = fopen($this->getBlockFile($i), 'r');
                }
                $write = fopen($this->outputFile, 'w');
                $this->buildQueue($reads);
                $lastTerm = 0;
                $combinedPostings = array();
                while(count($this->queue) > 0) {
                        list($termID, $postings) = $this->getLowest($reads);
                        $combinedPostings = 
                                array_merge($combinedPostings, unserialize($postings));
                        if($termID != $lastTerm) {
                                ksort($combinedPostings);
                                $lastTerm = $termID;
                                fwrite($write,  $termID . "\n" . 
                                                serialize($combinedPostings) . "\n");
                                unset($postings);
                                $combinedPostings = array();
                        }
                }
                
                foreach($reads as $read) {
                        fclose($read);
                }
                fclose($write);
                for($i = 0; $i < $this->blockIndex; $i++) {
                        unlink($this->getBlockFile($i));
                }
        }
        
        private function buildQueue($reads) {
                // if in 5.3, a SplPriorityQueue would be lovely here
                $this->queue = array();
                foreach($reads as $fID => $read) {
                        $this->queue[$fID] = (int)fgets($read);
                }
                asort($this->queue);
        }
        
        private function getLowest($reads) {
                list($fID, $termID) = each($this->queue);
                $postings = fgets($reads[$fID]);                
                $id = fgets($reads[$fID]);
                if($id === false) {
                        unset($this->queue[$fID]);
                } else {
                        $this->queue[$fID] = (int)$id; 
                }
                asort($this->queue);
                reset($this->queue);
                return array($termID, $postings);
        }
        
        private function writeBlock() {
                $this->blockCount = 0;
                ksort($this->block);
                $fh = fopen($this->getBlockfile($this->blockIndex++), 'w');
                foreach($this->block as $termID => $postings) {
                        // we could retrieve bytes written here
                        // which we could store in the dictionary
                        // for efficient lookup
                        fwrite($fh, $termID . "\n" . serialize($postings) . "\n");
                }
                unset($this->block);
                fclose($fh);
        }
        
        private function getBlockFile($index) {
                return $this->fileDirectory . '/index' . $index . '.idx';
        }
}
?>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
        $bbes = new BlockBasedExternalSort(dirname(__FILE__) . '/index.idx', '/tmp');
        $dictionary = array();
        $termCount = 1;
        $docCount = 1;
        foreach(glob('*.txt') as $file) {
                $fileContents = file_get_contents($file);
                preg_match_all('/[a-zA-z]+/', $fileContents, $matches);
                unset($fileContents);
                foreach($matches[0] as $match) {
                        $match = strtolower($match);
                        if(!isset($dictionary[$match])) {
                                $dictionary[$match] = $termCount++;
                        }
                        $bbes->addTerm($docCount, $dictionary[$match]);
                }
                unset($matches);
                $docCount++;
        } 
        $bbes->merge();
?>
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2013, 11:12
Ответы с готовыми решениями:

Перевести код с php на C#
Тут генерация всех чисел с 1 до 49 шесть раз с выводом потраченного времени. Нужно так же но на C#, что бы в консольку выводилось. Прошу...

Перевести код на PHP в код C#
Добрый день, ув. участники форума. &lt;?php function valid_rnn($rnn) { for ($i = 1; $i &lt;= 10; $i++) { $s = 0; ...

Перевести код из JS в php?
вот данный скрипт &lt;a href=&quot;/&quot; onClick=&quot;Albums.Delete({aid}, {hash}); return false&quot;&gt;&lt;div class=&quot;deletes&quot;&gt;&lt;/div&gt;&lt;/a&gt; &lt;a...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.03.2013, 11:12
Помогаю со студенческими работами здесь

Перевести код на php
Здравствуйте! В общем надо перевести код с С в котором я не о чем, в пхп в котором немного понимаю function...

Перевести код из JS в PHP
Нужно, чтоб вообще без скрипта остался. Либо пхп, чтоб скрипт запрашивала. Если такое делается вообще. В общем мне нужно, чтоб если скрипт...

Перевести код с C# на php
Помогите пожалуйста, кто может написать этот код на php ? using System; using System.Collections.Generic; using System.Linq;...

Перевести код с php на с++
Язык не понимаю совершенно, а перевод очень нужен. Помогите пожалуйстаю function p($s,$enc=&quot;UTF-8&quot;) { foreach...

Перевести код JavaScript на PHP
www-cs-students.stanford.edu/~tjw/jsbn/rsa.html Помогите плиз делать этот Javascript на PHP чтоб отправлялся запрося мог через delphi...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru