Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Парсер DAT, Перловка
#1
Доброго времени суток уважаемые,
Перепиливаю тут парсер, и столкнулся вот с такой бедой,
парсер должен по сути считывать в память 2 столбика из Русского файла,
сравнивать 1-ый столбик(id нпц) русского с 1-ым столбиком Английского,
и если данные ячеек совпадают, то должен записывать данные 2-ого
столбика во 2-ой столбик Английского файла. Но почему то на выходе
все равно получаю Англоязычный файл :redlol: Прошу помощи, подскажите
быть может где то объебался ошибся Smile

Основная часть кода:

PHP код:
<?php 
if ($cfg->{'translate_raid'} == 1) {
my $file = qq[IN\\raiddata-ru.txt]; # русский файл для чтения
my $HEAD = &get_header_as_hash($file); # получаем хеш заголовка файла
open(FILE, "<$file") || die qq[Error: Can not read '$file'];
my $npc_id_raid_desc;
while (<
FILE>) {
my @LINE = &get_line_as_array($_);
foreach
my $n (keys %{$HEAD}) {
substr($LINE[$HEAD->{$n}], 0, 3) =~ s/a,|u,//; # удаляем в начале строки символы 'a,'|'u,'
substr($LINE[$HEAD->{$n}], -3) =~ s/\\0//; # удаляем в конце символы '\0'
}

#$id => $dec => 'raid_desc' = $_;
$npc_id_raid_desc->{$LINE[$HEAD->{'npc_id'}]}->{'raid_desc'} = $LINE[$HEAD->{'raid_desc'}];
}
close(FILE); # закрываем файл

$file = qq[IN\\raiddata-e.txt]; # английский файл для чтения
$HEAD = &get_header_as_hash($file); # получаем хеш заголовка файла
my @OUT; # массив для обработанных данных и сохранения в файл
open(FILE, "<$file") || die qq[Error: Can not read '$file'];
while (<
FILE>) {
my @LINE = &get_line_as_array($_);
my $id = $LINE[$HEAD->{'npc_id'}]; # запишем npc_id в переменную $id
my $dec = $LINE[$HEAD->{'raid_desc'}]; # запишем raid_desc в переменную $dec
if(exists($npc_id_raid_desc->{$id}->{$dec})) {
$LINE[$HEAD->{'raid_desc'}] = $npc_id_raid_desc->{$id}->{$dec}->{'raid_desc'};
}

my $k = 0; # Вставляем нужное количество табуляторов
foreach my $LINE (@LINE) {
push(@OUT, $LINE);
push(@OUT, "\t") if ($#LINE > $k);
$k++;
}
}
close(FILE); #закрываем файл

# Сохраняем в файл.
&save_file(q[OUT\\raiddata-e.txt], @OUT);
}

За ранее очень благодарен Smile

Добавлено через 18 минут
Мля, я бараш Big Grin Всем спасибо, сделал сам Big Grin

Добавлено через 18 минут
PHP код:
<?php 
my
@LINE = &get_line_as_array($_);
my $id = $LINE[$HEAD->{'npc_id'}]; # запишем npc_id в переменную $id
if(exists($npc_id_raid_desc->{$id})) {
$LINE[$HEAD->{'raid_desc'}] = $npc_id_raid_desc->{$id}->{'raid_desc'};
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Парсер данных с банковского сайта валюты GenCloud 2 1,434 04-10-2016, 11:54 PM
Последний пост: GenCloud
  Посоветуйте десктопный парсер веб контента Agares 4 1,877 04-16-2013, 09:35 AM
Последний пост: Agares
  Парсер DAT->DAT, DAT->SQL MrShyr 2 2,931 03-01-2013, 12:21 AM
Последний пост: SkyWard
  парсер дроп листа DuMoH4uK 0 948 01-11-2013, 09:20 PM
Последний пост: DuMoH4uK
  Парсер email ruslanback 17 4,496 03-26-2012, 11:08 PM
Последний пост: m_d

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


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