Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Парсер xml'ки
#21
rage Написал:У каждого языка есть своя область применения где этот язык наиболее удобен. Perl как раз для подобных задач и был создан, по этому и решение на перле короче и быстрее, чем на пхп.

В каком месте оно короче того, что написал я?О_о На 1-2 строки даже длиннее будет. Да и скорость пыхокода не уступит перловому, так что в данном случае это необоснованно. Вся разница в том, кто и как напишет реализацию, вот и всё. И не удивительно, что работа с объектами и полным распарсом XML-структуры выглядит громоздкой и неповоротливой - в данной задаче это совершенно не нужно.
// aka Deft
Ответ
#22
Пока вы не убежали еще 1 вопрос: я чутка наморозил с конечной структурой
вместо
Код:
13031    Apiga     1-2     [100.0000%]
13034    Apiga     4-6     [100.0000%]
13034    Pirate's Booty     1-1     [50.0000%]
13035    Apiga     1-3     [100.0000%]
13035    Pirate's Booty     1-1     [100.0000%]
13036    Magic Reagents     1-4     [100.0000%]
13036    Philosopher's Stone Ore     1-2     [100.0000%]
13036    Philosopher's Stone Conversion Formula     1-1
надо
Код:
13031    Apiga     1-2     [100.0000%]
13034    Apiga     4-6     [100.0000%]\nPirate's Booty     1-1     [50.0000%]
13035    Apiga     1-3     [100.0000%]\nPirate's Booty     1-1     [100.0000%]
13036    Magic Reagents     1-4     [100.0000%]\nPhilosopher's Stone Ore     1-2     [100.0000%]\nPhilosopher's Stone Conversion Formula     1-1
Посоветуите чего?
Ответ
#23
Yorie Написал:В каком месте оно короче того, что написал я?О_о На 1-2 строки даже длиннее будет. Да и скорость пыхокода не уступит перловому, так что в данном случае это необоснованно. Вся разница в том, кто и как напишет реализацию, вот и всё. И не удивительно, что работа с объектами и полным распарсом XML-структуры выглядит громоздкой и неповоротливой - в данной задаче это совершенно не нужно.
Ну да, переписать мой код с перла на пхп много умна не надо.
Я имел ввиду то, что начинающий пхп программист даже не задумается об использовании регулярных выражений для решения подобных задач. В то время как на перле без них никуда.

ЗЫ Я не говорю, что перл круче пхп, я лишь хочу сказать, что для каждой задачи есть свой наиболее подходящий язык. Просто не стоит ограничивать себя тем или иным языком.

Добавлено через 56 секунд
Shayne Написал:Пока вы не убежали еще 1 вопрос: я чутка наморозил с конечной структурой
вместо
Код:
13031    Дроп    Apiga     1-2     [100.0000%]
13034    Apiga     4-6     [100.0000%]
13034    Pirate's Booty     1-1     [50.0000%]
13035    Apiga     1-3     [100.0000%]
13035    Pirate's Booty     1-1     [100.0000%]
13036    Magic Reagents     1-4     [100.0000%]
13036    Philosopher's Stone Ore     1-2     [100.0000%]
13036    Philosopher's Stone Conversion Formula     1-1
надо
Код:
13031    Дроп    Apiga     1-2     [100.0000%]
13034    Apiga     4-6     [100.0000%]\nPirate's Booty     1-1     [50.0000%]
13035    Apiga     1-3     [100.0000%]\nPirate's Booty     1-1     [100.0000%]
13036    Magic Reagents     1-4     [100.0000%]\nPhilosopher's Stone Ore     1-2     [100.0000%]\nPhilosopher's Stone Conversion Formula     1-1
Посоветуите чего?
А что тут советовать? По моему модифицировать предложенные решения нет никаких проблем.
Ответ
#24
offtop
// aka Deft
Ответ
#25
Yorie Написал:Зачем сравнивать код, написанный человеком, хорошо владеющим Perl и новичка в PHP? Все равно, что сравнивать колесо и сам автомобиль. Зато, почему-то мой код со своим Вы никак сравнить не хотите - я же тупо скопипастил высшее творение на Перле, йопте, и оно в сравнение не может идти с гениальным умом :redlol:
Это была ирония друг мой, ирония...
В прочем, агр защитан Wink
Ответ
#26
offtop
// aka Deft
Ответ
#27
rage Написал:А что тут советовать? По моему модифицировать предложенные решения нет никаких проблем.
Мне не кажется это таким легким:Olen':
Ответ
#28
Shayne Написал:Мне не кажется это таким легким:Olen':
[src=perl]
#!/usr/bin/perl
use strict;

my($npcId, $gchance);
open(FH,"<npc.xml") or die "$!\n";
while(<FH>)
{
my $str = $_;
if($str =~/npc id="(\d+)"/)
{
$npcId = $1;
print "\n$npcId\t";
}
elsif($str =~/group chance="(.+?)"/)
{
$gchance = $1;
}
elsif($str =~/\<reward\s+item_id="(\d+)" min="(\d+)" max="(\d+)" chance="(.+?)".+?\<\!--(.+?)--\>/)
{
print "$5 $2-$3 [$gchance * 100 / $4]\\n";
}
}
close(FH);
[/src]
Ответ
#29
Ай, неведомая *****, мало того, что не понятен так еще и попробуй пойми как этот скрипт запустить...:ea: Уж лучше останусь пехепистом...
Ответ
#30
Запустить легко, под любой nix системой "./script.pl" при это входной фаил должен называться npc.xml и лежать в той же папке что и скрипт. Под виндой, поставить перл и запустить "perl script.pl" при этом perl.exe должен быть в PATH.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 3 Гость(ей)