From: Ruslan Suleimanov 2:467/888 04 Feb 2020 11:46 +0200
To: Alexey Korotkov 2:455/19.2
Subject: скрипт для сравнений
Привет, Alexey! Ответ на сообщение Alexey Korotkov (2:455/19.2) к Ruslan Suleimanov, написанное 02 фев 20 в 23:26: AK> Hello, Ruslan Suleimanov. AK> On 2/2/20 19:49 you wrote: RS>> Есть первоначально два текстовых файла(файл 1 и файл 2) и в RS>> каждом файле какоето количество строк с разными словами, так вот RS>> необходи взять сперва значение первой строки файла 1 и сравнить с RS>> каждой строкой файла 2, и если значения не совпадает тогда это RS>> слово из файла1 поместить в файл3, а если есть совпадение тогда RS>> поместить в файл4, и так сравнивать каждую строку файла1 со всеми RS>> строками файла2. HELP ! :) AK> Сделать хэш с ключами-словами из первого файла, значение не важно. При AK> чтении второго файла определять есть ли в хэше элемент с таким ключём. AK> Есть - писать его в файл 3, нет - в файл 4. Так? в хэше это вообще круто будет, можно и хешем :) а можно просто как текст. Вот например: файл1.txt в столбик идут слова: COOK BOOK HELLO FAT BOX FOX и в файл2.txt в стобик идут слова: COOK BOOK FAT FOX берем слово COOK и проверяем со всеми словами которые в столбик файл2.txt и если видим есть такое слово тогда помещаем его в файл4.txt и т.д теперь видим что слово HELLO и BOX не встречается в файл2.txt тогда эти слова помешаем стобиком в файл3.txt Так :) WBR, Ruslan Suleimanov. Telegram: @rsuleimanov
From: Ruslan Suleimanov 2:467/888 01 Dec 2019 20:26 +0200
To: All
Subject: test
Hello All! test? Ruslan Telegram @rsuleimanov
From: Ruslan Suleimanov 2:467/888 02 Dec 2019 06:18 +0200
To: Eugene Grosbein grosbein.net
Subject: test
Hello Eugene! Monday December 02 2019 03:38, you wrote to me: EG> 01 дек. 2019, воскресенье, в 19:26 NOVT, Ruslan Suleimanov написал(а): RS>> Hello All! RS>> test? EG> ормально. атлично!:) Ruslan Telegram @rsuleimanov
From: Eugene Grosbein grosbein.net 22 Jan 2019 05:56 +0200
To: Mikhail Stakhanov 2:5020/932.1
Subject: perl 5.28.1
21 янв. 2019, понедельник, в 19:56 NOVT, Mikhail Stakhanov написал(а): MS> * Скопировано в ru.perl MS> приплыл не собирается на роутере: MS> ==== MS> Checking your choice of C compiler and flags for coherency... MS> I've tried to compile and run the following simple program: MS> #include MS> int main() { printf("Ok\n"); return(0); } MS> I used the command: MS> gcc -o try -O2 -fwrapv -fno-strict-aliasing -pipe MS> -fstack-protector-strong -fstack-protector-strong try.c -lpthread -lgdbm -ldb MS> -lm -lcrypt -lutil -lc MS> ./try MS> and I got the following output: MS> /opt/bin/ld: warning: libc.so.0, needed by /usr/lib/libgdbm.so, may conflict MS> with libc.so.6 MS> /opt/bin/ld: warning: libc.so.0, needed by /usr/lib/libgdbm.so, may conflict MS> with libc.so.6 MS> /opt/bin/ld: errno@@GLIBC_PRIVATE: TLS definition in MS> /tmp/mnt/My_Passport/asusware.arm/bin/../lib/gcc/arm-openwrt-linux-gnueabi/6.3.0/libc.so.6 MS> section .tbss mismatches non-TLS definition in /opt/lib/libc.so.0 section .bss MS> /opt/lib/libc.so.0: error adding symbols: Bad value MS> collect2: error: ld returned 1 exit status MS> I can't compile the test program. MS> You have a BIG problem. Shall I abort Configure [y] MS> Ok. Stopping Configure. MS> ==== MS> Что посоветуете ? С этим тебе не в ru.perl, а в линуксовую эху, потому что проблема это не перла, а твоего линуксового окружения, которое не может собрать элементарного приложения с использованием libgdbm. Eugene -- Поэты - страшные люди. У них все святое.
From: Mikhail Stakhanov 2:5020/932.1 09 Apr 2019 22:24 +0300
To: Mikhail Stakhanov 2:5020/932.1
Subject: кодировка
Здравствуйте, Mikhail! Ответ на сообщение Mikhail Stakhanov (2:5020/932.1) к Eugene Grosbein, написанное 09 апр 19 в 21:30: MS> Под актив перл все работает: MS> for (my $i = 0; $i < scalar(@files); $i++) { MS> ($parts[0], $parts[1]) = ($1,$2) if ($files[$i] =~ MS> /^(.{1})(.*)/); MS> open FFile, "<", "$index_dir"."str_"."$parts[0]".".idx" or die MS> "ssf"; \- открываем файл на начальную букву запроса, если первый MS> символ ? или *, то печалька, пока не реализуем :) MS> %dirs = read_config("$index_dir"."dirs.lst"); MS> my $d_found = (); MS> my $current = (); MS> $files[$i] =~ s/\./\\.{1}/g if ($files[$i] =~ /\./); MS> $files[$i] =~ s/\?/\.{1}/g if ($files[$i] =~ /\?/); MS> $files[$i] =~ s/\*/\.\*/g if ($files[$i] =~ /\*/); MS> while () { MS> if ($_ =~ /^$files[$i]/i) { \- Вот это место, (файл) MS> (индекс каталога) формат файла. MS> ($current) = $_ =~ /^(.*?)\s/i; MS> ($d_found) = $_ =~ /\s(.*)$/i; MS> foreach my $key (sort keys %dirs) { MS> if ($dirs{$key} == $d_found) { \- %dirs = MS> { [путь] => [номер] } MS> $files_found[$j] = MS> $key."/".$current; MS> } MS> } MS> print "$files_found[$j]"; MS> $j++; MS> } MS> } MS> close FFile; MS> } поймал ошибку z2daily.093 != z2daily.093 т.к. "." любой произвольный символ и он должен иметь модификатор ? (правильно ?) и соответственно z2daily[Любой символ]093 должно подходить под z2daily.{1}093, но если мы делаем z2daily\.{1}093 в files[$i] то работает. Так ? Всего наилучшего, Mikhail
From: Gennadij Pastuhov 2:5036/26 07 Apr 2019 03:16 +0300
To: Mikhail Stakhanov 2:5020/932.1
Subject: soft hash
Рад всех приветствовать! А особенно - Mikhail! Суббота апреля 06 19 18:39 Mikhail Stakhanov писал к All: MS> Помогите хешь отсортировать: MS> $VAR1 = { MS> 'ap190325.zip' => [ MS> '2' MS> ], MS> 'z2daily.080' => [ MS> '8' MS> ], MS> 'files.bbs' => [ MS> '1', MS> '2', MS> '3', MS> '4', MS> '5', MS> '6', MS> '7', MS> '8' MS> ], MS> 'z2daily.074' => [ MS> '8' MS> ], MS> 'ap190403.zip' => [ MS> '2' MS> ] MS> }; MS> Хешь вида {key}[0..n] (имя файла и номер каталога). Нужна сортировка MS> по {key}. Хотя можно выделять массив на начальную букву, его MS> сортировать и запихивать в файл. Но всеравно в качестве развития как MS> по {key} такой хеш сортируется ? Ты же уже написал: sort keys %hash ... Jonny wanna live
From: Eugene Grosbein grosbein.net 16 Apr 2019 14:36 +0300
To: Mikhail Stakhanov 2:5020/932.1
Subject: strif
15 апр. 2019, понедельник, в 18:31 NOVT, Mikhail Stakhanov написал(а): MS> Можете потестировать ? Тестировать я не могу, мне не на чем, но даже если бы и мог: $ perl -cw strif.pl Can't locate File/Find/Rule.pm in @INC (you may need to install the File::Find::Rule module) (@INC contains: /usr/local/lib/perl5/site_perl/mach/5.26 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.26/mach /usr/local/lib/perl5/5.26) at strif.pl line 10. BEGIN failed--compilation aborted at strif.pl line 10. Типа намёк. Eugene -- Господа Действительного Положения Вещей предохраняют себя от голода своим богатством, от общественного мнения - тайной и анонимностью, от частной критики - законами против клеветы и тем, что средства связи находятся в их распоряжении. (Hорберт Винер)
From: Gennadij Pastuhov 2:5036/26 28 Jan 2019 17:17 +0200
To: All
Subject: +key => +value
Рад всех приветствовать! А особенно - All! Иногда встречаю в коде выражения вида: { -key => "value", } или { response => '+response', } В доке что-то не могу найти, как это понимать. Помогите, плз! ... Jonny wanna live
From: Brother Rabbit 2:460/5858 31 Mar 2019 23:40 +0300
To: Mikhail Stakhanov 2:5020/932.1
Subject: freq скрипт
Hi, Mikhail! 31 мар 19 22:29, Mikhail Stakhanov -> Eugene Grosbein: MS> Спасибо работает. === Import Windows Clipboard Start === sub getBSOname { my ( $addr, $out ) = @_; $addr =~ /([\d]+)\:([\d]+)\/([\d]+)\.?([\d]*)/; my ( $zone, $net, $node, $point ) = ( $1, $2, $3, $4 ); $bsoname = $out; $bsoname .= ".".sprintf("%03x", $zone) if $zone != $defaultzone; mkdir $bsoname unless -e $bsoname; $bsoname .= "\\" if $bsoname =~ /\\/; $bsoname .= "\/" if $bsoname =~ /\//; $bsoname .= sprintf("%04x", $net) . sprintf("%04x", $node); if ( defined ( $point ) && $point != 0 ) { mkdir $bsoname unless -e $bsoname; $bsoname .= "\\" if $bsoname =~ /\\/; $bsoname .= "\/" if $bsoname =~ /\//; $bsoname .= sprintf( "%08x", $point ); } return $bsoname; } === Import Windows Clipboard End === $freqfilename = getBSOname($address, '/home/fido/out/fidonet') . '.req'; Требуется глобальная переменная $defaultzone. Обычно берется из конфига или указывается явно прямо в скрипте. Have nice nights. Brother Rabbit.
From: Eugene Grosbein grosbein.net 06 Apr 2019 09:09 +0300
To: Brother Rabbit 2:460/5858
Subject: регулярные выражения.
05 апр. 2019, пятница, в 09:09 NOVT, Brother Rabbit написал(а): EG>>>> (undef, $echo, $desc) = $_ =~ /^(Hold)?,(.*?),(.*?),+/); BR>>> Зачем? Hас же совсем не интересует холд или нет. EG>> undef как раз и означает, что нас первая группа не интересует. BR> Да. Вопрос был в том, зачем ее вообще выделять в таком случае в скобки? Скобки тут ради знака вопроса, чтобы он применялся ко всей группе. EG>> (если исправить баги дальше в круглых скобках, где ты потерял звёзды), BR> Это опечатка. А не лучше там плюсики вместо звездочек? Или там реально может BR> ниичего не быть? Это не ко мне вопрос, я с такими файлами не работаю. EG>> читабельность хуже, чем с круглыми скобками - новичка может сбить с EG>> толку, да и остальным потребуется сначала сообразить, в чём тут финт. BR> Мне кажется, что читается как раз проще всего, когда написано "не запятая", BR> понятно, что нужен текст меджу запятыми. Это несколько субъективно, конечно, кому как легче читается. Лично мне .* читается легче любой другой нетривиально конструкции. EG>> Есть у Perl слабое место - легко писать write-only code :-) EG>> Hо не надо поддаваться. BR> Да. Потом и сам прочесть не сможешь. ;) Во-во. Eugene