Доброго времени суток уважаемые,
Перепиливаю тут парсер, и столкнулся вот с такой бедой,
парсер должен по сути считывать в память 2 столбика из Русского файла,
сравнивать 1-ый столбик(id нпц) русского с 1-ым столбиком Английского,
и если данные ячеек совпадают, то должен записывать данные 2-ого
столбика во 2-ой столбик Английского файла. Но почему то на выходе
все равно получаю Англоязычный файл :redlol: Прошу помощи, подскажите
быть может где то объебался ошибся
Основная часть кода:
Перепиливаю тут парсер, и столкнулся вот с такой бедой,
парсер должен по сути считывать в память 2 столбика из Русского файла,
сравнивать 1-ый столбик(id нпц) русского с 1-ым столбиком Английского,
и если данные ячеек совпадают, то должен записывать данные 2-ого
столбика во 2-ой столбик Английского файла. Но почему то на выходе
все равно получаю Англоязычный файл :redlol: Прошу помощи, подскажите
быть может где то объебался ошибся
Основная часть кода:
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);
}
За ранее очень благодарен
Добавлено через 18 минут
Мля, я бараш Всем спасибо, сделал сам
Добавлено через 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'};