| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Есть задача:
имею два файла с разделителями ";" делаю следующюю обработку со вложенным поиском при этом вложеный поиск она обрабатывает а внешний не хочет. ===== open outfile, "<C:/Perl/moduli/reestr/spisok1.txt" or die "не могу открыть\n" ; open outfile2, "<C:/Perl/moduli/reestr/spisok2.txt" or die "не могу открыть\n" ; foreach $item1 (<outfile>) { foreach $item2 (<outfile2>) { @array1=split(";",$item1); @array2=split(";",$item2); printf ("@array1[0]=@array2[0] \n"); if (@array1[0] eq @array2[0]) { printf ("@array1[0]=@array2[0] \n"); } } } У кого будут какие соображения. проблема проста но не могу ее решить. |
|
|
# 2 |
|
::VIP::
Звезда первого сезона Молчун-2004 Регистрация: 24.08.2002
Сообщения: 1 575
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Код:
open (FILE, "spisok1.txt");
my @indata1 = <FILE>;
close (FILE);
open (FILE, "spisok2.txt");
my @indata2 = <FILE>;
close (FILE);
my $i = 0;
foreach my $str1 (@indata1) {
my @p1 = split (/;/, $str1);
my $j = 0;
foreach my $str2 (@indata2) {
my @p2 = split (/;/, $str2);
if ($p1[0] eq $p2[0]) {
print "Line $i in File1 == Line $j in File2: $p1[0]\n";
}
$j++;
}
$i++;
}
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы! |
|
|
|
|
# 4 |
|
::VIP::
Звезда первого сезона Молчун-2004 Регистрация: 24.08.2002
Сообщения: 1 575
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Код:
open (FILE, "spisok1.txt");
my @indata1 = <FILE>;
close (FILE);
my $l1 = @indata1;
open (FILE, "spisok2.txt");
my @indata2 = <FILE>;
close (FILE);
my $l2 = @indata2;
for (my $i=0; $i<$l1; $i++) {
my @p1 = split (/;/, $indata1[$i]);
for (my $j=0; $j<$l2; $j++) {
my @p2 = split (/;/, $indata2[$j]);
if ($p1[0] eq $p2[0]) {
print "Line $i in File1 == Line $j in File2: $p1[0]\n";
}
}
}
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы! |
|
|
|
|
# 6 |
|
::VIP::
Звезда первого сезона Молчун-2004 Регистрация: 24.08.2002
Сообщения: 1 575
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
В ДНК.
(это я шучу так)Ошибка заключается в попытке циклического прохода файла - указатель сам по себе за здорово живешь на начало файла не перемещается. Вообще, при работе с файлами их нужно с перва считать в память, а потом уж обрабатывать.
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы! |
|
|