From: Brother Rabbit 2:460/5858 19 Jan 2019 13:43 +0200
To: Mikhail Stakhanov 2:5020/932.1
Subject: txt2pkt
Hi, Mikhail! 19 янв 19 02:03, Mikhail Stakhanov -> All: MS> а есть ли сабдж на эхотаге ? может кто писал уже ? Есть pktview в комплекте HPT. Сделать из него уже не трудно, я думаю. Have nice nights. Brother Rabbit.
From: Alexey Vissarionov 2:5020/545 13 Jun 2019 22:11 +0300
To: Eugene Grosbein grosbein.net
Subject: что я не так делаю?
Доброго времени суток, Eugene! 13 Jun 2019 16:37:32, ты -> Brother Rabbit: BR>> С локалью все в порядке, я думаю. Регистронезависимый поиск в BR>> русском языке работает с use locale; и не работает без этого. EG> Это ничего не значит. В локали вполне может быть правильный EG> collation (данные регистре), но кривой ctype - такое встречалось. EG> Имя IBM866 (вместо стандартного CP866) намекает на то, что вместо EG> полноценной локали у тебя какой-то самопал недоделанный. И на то, что ТС начисто проигнорировал рекомендации держать фидошный софт в локали KOI8-R. BR>> Однако, \b почему-то не находится даже с use 5.22.0. EG> Это не проблема перла, это проблема используемой системной локали. Локаль - свойство процесса, а не системы. -- Alexey V. Vissarionov aka Gremlin from Kremlin gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii ... - Что вы чувствуете, когда стреляете в людей? - Отдачу.
From: Gennadij Pastuhov 2:5036/26 05 Apr 2019 12:10 +0300
To: Mikhail Stakhanov 2:5020/932.1
Subject: UTF-8 CP866
Рад всех приветствовать! А особенно - Mikhail! Пятница апреля 05 19 07:37 Mikhail Stakhanov писал к Alexey Vissarionov: MS>>> Слушайте а как вы кодите ? MS>>> вот я писал сегодня прогу в винде в фаре, потом перенес ее на MS>>> linux и там отстроил, так у меня usage и системные сообщения MS>>> UTF-8 А все для внутренних фидо файлов CP866 AV>> use Encode; MS> from_to у меня не работает.... не понимаю почему. На хабре есть отличная статья по этой теме. Краткая выжимка: use utf8; - эта прагма позволяет писать текст программы в utf8, к данным программы она отношения не имеет Когда читаешь фидошные файлы, то применяй что-то вроде Encode::decode($charset, $file_content); - это перевод данных, хранящихся в переменной $file_content, из кодировки $charset во внутреннее перловое представление (не utf8!) При выводе надо делать обратно: Encode::encode($fido_charset, $text); Т.е., текст программы, данные внутри программы и данные во внешних файлах - 3 разные сущности, нужно не путать их. ... Jonny wanna live
From: Mikhail Stakhanov 2:5020/932.1 07 Apr 2019 02:30 +0300
To: Mikhail Stakhanov 2:5020/932.1
Subject: soft hash
Здравствуйте, Mikhail! Ответ на сообщение Mikhail Stakhanov (2:5020/932.1) к All, написанное 06 апр 19 в 18:39: Мне всеравно интересно но задачу я решил для себя. MS> Помогите хешь отсортировать: MS> Хешь вида {key}[0..n] (имя файла и номер каталога). Нужна сортировка MS> по {key}. Хотя можно выделять массив на начальную букву, его MS> сортировать и запихивать в файл. Но всеравно в качестве развития как MS> по {key} такой хеш сортируется ? foreach my $key (sort keys %files) { foreach my $letter ("a".."z") { if ($key =~ /^$letter/) { my $count=@{$files{$key}}; for (my $i=0; $i<$count;$i++) { $files_letter[$out_ind+$i][0]=$key; $files_letter[$out_ind+$i][1]=$files{$key}[$i]; } $out_ind +=$count; } } } Я понял что я не умею работать с данными :) Всего наилучшего, Mikhail
From: Mikhail Stakhanov 2:5020/932.1 09 Apr 2019 02:14 +0300
To: All
Subject: кодировка
Здравствуйте, All! ПОМОГИТЕ!!! Целый вечер провел! Не понимаю: Linux, UTF8, Linux раздел. Получаю .req c виндового binkp на qico 0.57xe внутри use utf8; хоть убей не понимаю: @files читаю из созданного qico qsrif.UID (в какой кодировке ?) Открываю файл он у меня создан данным скриптом. Сравниваю строку $current из файла и $files[$i] и не выходит каменный цветок! if ($current =~ /$files[$i]/i) не работает! все буквы и так маленькие и все английские. Что я делаю не так ? И qico виснет на 100% после чтения файла... при том в логе /usr/sbin/strif.pl /tmp/qsrif.*** exit_code=0! (Он отрабатывает до конца). Когда я ставил заглушку типа, что не попроси всеравно отдам test.msg, все работало. Что я делаю не так ? Весь вечер сидел! в винде все работает! Всего наилучшего, Mikhail
From: Mikhail Stakhanov 2:5020/932.1 15 Apr 2019 20:31 +0300
To: All
Subject: strif
Здравствуйте, All! Можете потестировать ? >---=== Куть он "strif.zip" ===--- begin 644 strif.zip M4$L#!`H``````/&,CTX````````````````&````#RR4]WR2SBU"]++-+/R4_73RO)X_+,2TFM@(L6 M%^3GYX#$]=,RNF<>XOD/^H,[-+ MB;+D%/U4P9:XL[.S,\_.V[*T9(]$9#_V`WOH17VH'!2+)7@0@XC\+G0C;Q^& M4=CQA`@CZ.+_OM\)D>-IU:JE)^`ZL0?5ZU;U2VNE6KMAX1>,B3)DT^N1S\H<'`(^D@X/0^:L+H* M5S?N;U]M%(L/F42V=*UA'W96NZAGX`R\M5W8J?B[Q5M1;S3P@EC4BX5L#D5, M'KM1.&!@P4C>)F?).[#CP=#>IS.PGN$']RY4?%SR>.3W74``O&>-HA36"8.N MW\.YX2@&'_\"$)W('R*LA)2CP&4-$/`B&H(G MM[0$R5^2T^1C\CXY3U_C]T=(_IF\2]ZG)^D?(?F0G*8OF'BDE-X1AG2ND/Z:OD//F0_B8Y0X72WZ8OR18>H/J?T*P?$-\? MDU.H2/71)GHX35](P].7Z8OT#X!KWDN&MRCB$])>IW_&N9/T=5&,'@/ZN-M6 MR!NZ"4?%`JIEZ-F1FLWU=D/1OO<.R[KKB8XI*5>0()H&C=@G[]S=W"B#MEIG M=\,0,!YNWZE<-[6R-I&G`8:>ZWN@;401/O)"FH0I"\H[V".2L4HBUUBK`D:Q MH;=AZ3D,[$>-X]*R+>F%O&+0-/1:65\Q0;$WGX/]R+"NW31;`G^63=TF?0L% M6B2.^AU>;8[1[3060;L7QD7ZZ_1#BE548>J!;'.C.*;DFS](1< MZBU(]Z)3OB(!9J@(](,V'K-"F[%(_I;^#H_S#9^BCM[[4_J"A'S",_M`YXB_ M9TC`0S]-_H6"3Z>>HZ&^HP#=7T@P-^]_@X>PMD:HRWV/D!6];VQKEI9?!@4' M0V<8^4%,JT!;;[>""5U:C_2I\4;55*8G?T?=3LC'DD_2,R];]CN4PY;3,WL^A_25^GO<8./\V(_ M,J9H8-L/,/X85V`'U1]3U$$3Q)[?I322$9Z#.+:/6ZWC'OF)_N@^^\FW#WZ% MU>,"VZ.6=7R\D(LVZ.*6[0@S.#3GDGIE+?`.*+E-N2IK`^>9ZPWC/:-&6,Y, MX99>)PZC0RE[78Q8#8&B(<_G!X94T"3AG(R:U2P&[]Z[O?$=E#4^_DF2PH,G M259?Q-,`G'&Z65=+7\^XVD2.34F,A$Q#M":CL.^(F&-N2<_TWM']78ZU&8I$ M%:&W+P&_(!U2&J+-KM5]=%`6Z2\O-W)!RMPY1YV`)QT6NX)!Z'K&@^W;6"C+ M5[E*7L4Y`D)50DX8I5M;W_QRE8Z&LS,6KT8QB]YGP MUI4'YL)+V<0CM@H:F9+:72)2HS3'!=0M6;`=QDZ?I(DZPB00!2!/30MAP M2U`?Z09:\M=I4EF04A9LE/PTFYNDRQ#,W"606ZCZQ6/.RKDPZH9XT)T](`IE M`:4=G02'&(Z,VW>WRCQK3J*IXP178YF!]27VT>EVT`2C%WE#.%JR'[4L&[[X M`BI=*C@84GI;&W,9)D84;#8`2L6"4,K0&8WS\B=O^@+@*2-Y03L&V2 M=3$7>BH#P*0Y`/VITQ]Y6(6!M#4DP"9(+5VO[\6JSHLC6C!642)72:&%_%'A M@MA3IZ6'HYA\.Z0)!,8FJ-9EO9KS82C8F&&`[<"`_O^&*AZ0Z860T<:,`-W M"DI8UEKPOAWL,./F^E%>\3)N`D;D.?J]*Y@9AE(DHZ'E;=C(SEC&?49R3 MN$;AOW+6=IOY_2D;2A7&_)WQPG)3J<#DD@JBQ8)W=W95.BTJ0>.LS\K$+36A MJ@S)MWASU06;U[9F*?0PD'WWV;30?,VAT>'KE&SYN>-#1UL,XNSASV`I[2$M MYHQB.&&>6-OEID99.-O4`60BV8),?]1>J>LJ@++\IJAP@5N3/:5$<$9]F5UF M?'=<5'NJFU[KHK.KO62B5Y\-/`SYD0F>I'K/_)A;,AB#UQ>>:MYUNFWA;LVL MEI`"BJ9:GV6JOO/DRSHB*!$1']WP0)2AL^<$/0]LNG"V9"8E.;,%4DE&[4JP MYX@]R8./3_&:&/;[X0'>\;P!E@&@>SJVKWX8;!\.O;*\;2/QUL]OE?G^7(8M M;Q#&WH/8B4>"&7!I-MKR]D>>B#=]$=-`#,-`>'*$0C:QTL8HN@R_V,,*A#^. M$`=AY);A6P=QCU`<*H(WZ%$D-]RZ=>^[XO^Y["H74*;)>S5J5Y>'>^1\[XRU M'!\CEDT*&LCI22;-*AQFYJIZ?J*>.:ZW-NGB1E'-(B*Y;Q]!'$_C6,(.'E_< M]"4J\W3D>-&#!.')7=[/\2O]$U^#Y.WHA*HP M]S%X[QFK/&WH;`:&=1G48VV7*FYV\84%JN$-^*@V-O$";-HFHZYLS]__C4LN M#`PR=T.SD,KB.(HB+X@GM+G3M.Q6BS:W>XL4P^G%RV[:GUMU\Y)5UW!5Z]HE MBZ[)1;*.T64M<_D%A2S#^&(I$Z)+CCU]/T%RE',7C`P-D[U[YMV#[7.%(+UR MH"'#5$ORDM)TTMOGLIQKA2=3JYAXI^NR$D6<1G9(4@7>@5]\F+K2X/.=T;35 M+62]$9%4M]9LPE1^QI0=@Z3OZ$\XMI'?TFS-RG16>ZMVI3"6'4^)8QMA=;OX M!Q<%2;L*^A.9""8MB@QWQE[6TWS%S$=_/D?.IRA`1=,CTX````````````````.````[4`3_4`5\.2^R8\]0!#S%([)CSU`%02P$"'P`*```` M``#]C(].````````````````"@`D`````````!````#)"P``,CTX````````````````.`"0`````````$````/$+``!S=')I9B]V M87(O;&]G+PH`(````````0`8`",Q4A*9\]0!XU94$IGSU`'?:?\-F?/4`5!+ M`0(?``H``````/>,CTX````````````````2`"0`````````$````!T,``!S M=')I9B]V87(O;&]G+V9T;B\*`"````````$`&``C,5(2F?/4`2,Q4A*9\]0! M(S%2$IGSU`%02P$"'P`*```````"C8].````````````````$``D```````` M`!````!-#```MH---=== Куть офф "strif.zip" ===--- Всего наилучшего, Mikhail
From: Mikhail Stakhanov 2:5020/932.1 31 Mar 2019 22:29 +0300
To: Eugene Grosbein grosbein.net
Subject: freq скрипт
Здравствуйте, Eugene! Ответ на сообщение Eugene Grosbein (2:5006/1) к Mikhail Stakhanov, написанное 01 апр 19 в 02:09: EG> my $outbound='d:/fido/spool/out/'; EG> # заменяем прямые слеши на обратные, если под Windows EG> $outbound =~ s|/|\\|g if $^O =~ /MSWin/; Спасибо работает. MS>> $adr =~ m|^(\d+?):(\d+)/(\d+)$| and ($zone,$net,$node)=($1,$2,$3) MS>> or MS>> $adr =~ m|^(\d+?)/(\d+)$| and ($net,$node)=($1,$2) and MS>> $zone='2' or die "Ошибка в формате адреса *:*/*"; print "Зона: MS>> $zone, Сеть: $net, Hода: $node\n"; >>> пока зону не использует, но все работает в такой конструкции а >>> можно как-то писать and {} чтобы не писать and ... and ... ? and ... and ... and ... MS>> my $adr_hex=sprintf('%04x%04x',$net,$node); MS>> my $freq=sprintf("%s.req",$adr_hex); EG> Вот уж чего никогда не стоит делать в Perl так это последний sprintf EG> для склеивания строк, вместо этого работает простой EG> $freq="$adr_hex.req" Поправил EG> А если $adr_hex отдельно ненужен, то обе эти строки сворачиваются в EG> одну: EG> my $freq=sprintf('%04x%04x.req',$net,$node); Исправил. Осталось дописать проверку на созданный каталог, если зона отличается от def_zone, Если его нет, то создать его, и туда запихнуть req. И будет тогда все... Всего наилучшего, Mikhail
From: Mikhail Stakhanov 2:5020/932.1 05 Apr 2019 23:15 +0300
To: Gennadij Pastuhov 2:5036/26
Subject: UTF-8 CP866
Здравствуйте, Gennadij! Ответ на сообщение Gennadij Pastuhov (2:5036/26) к Mikhail Stakhanov, написанное 05 апр 19 в 12:10: GP> На хабре есть отличная статья по этой теме. Краткая выжимка: GP> use utf8; - эта прагма позволяет писать текст программы в utf8, к GP> данным программы она отношения не имеет GP> Когда читаешь фидошные файлы, то применяй что-то вроде GP> Encode::decode($charset, $file_content); GP> - это перевод данных, хранящихся в переменной $file_content, из GP> кодировки $charset во внутреннее перловое представление (не utf8!) GP> При выводе надо делать обратно: GP> Encode::encode($fido_charset, $text); Да вкурил. спасибо работает. у меня вчера не работало, так как я неправильно все понял! Просто хочется писать универсальный код (я пишу srif процессор для qico), когда есть время, и хочется чтобы и в винде работало. а тут cp1251 кодировка файлов. Кстати! про построение индекса: В Vireq это сделано так: Ищем все каталоги и создаем dirs.lst формата: dir number далее открываем его для чтения: считываем в %files = {file = > dir_number, дата_создания} сортируем %files и записываем его по буквам в файлы [a-z][0-9][...] все символы, так вот вопрос! в ftsc нету описания а как быть с русскими буквами ? Я решу этот вопрос записывая название файла в кавычки: "имя файла с пробелами" цифра(номер каталога) системное время (чтобы сравнивать по новизне если нужен новыйший файл по маске) может есть идеи как хранить индекс по-другому ? qico я допилю чтобы он в qflg.* обрабатывал ковычки при отдаче. там будет вопрос еще системный, а если в индексе будет подмаунченый каталог ntfs с cp1251 ? Всего наилучшего, Mikhail
From: Eugene Grosbein grosbein.net 13 Feb 2019 16:51 +0200
To: Gennadij Pastuhov 2:5036/26
Subject: perl strings & Encode::encode
13 февр. 2019, среда, в 11:04 NOVT, Gennadij Pastuhov написал(а): GP> Поясните, плз, видимо, я чего-то не до конца понимаю. GP> my $str = "некая строка"; GP> В $str имеем строку во внутреннем перловом формате. Соответственно, все GP> языковые средства должны работать с ней корректно. Hо строка имеет "старую" GP> однобайтовую кодировку. Понятие "однобайтная кодировка" неприменимо к внутреннему перловому представлению данных (включая строковые). Это термин для "внешних" источников данных по отношению к внутренней перловой кухне, причём к "внешним источникам" относится и сам текст перлового кода, который обрабатывается интерпретатором. GP> use utf8; GP> my $str = "некая строка"; GP> $str опять во внутреннем формате, но может содержать уникодные символы. Все GP> языковые средства опять должны работать корректно? После use utf8 интерпретатор при обработке текста программы предполагает и допускает использование utf8 и конвертирует встреченный utf8 в своё внутреннее представление соответственно. Если utf8 изначально корректный, то да - средства должны работать корректно. GP> my $str = Encode::encode_utf8("некая строка"); GP> Теперь $str хранит строку с BOM, каждый символ закодирован уникодными кодовыми GP> позициями? И языковые средства тут хз как отработают? Encode::encode_utf8 просто конвертор из внутреннего перловского представления данных во "внешнюю" кодировку utf8, $str тут предназначается, например, для записи в html или текстовый документ или выдачи в терминал, который настроен для работы с utf8, или для отправки в сетевой сокет строки в формате utf8 и так далее - в общем, для работы с "внешним миром", а не для продолжения использования $str как текстовой перловской переменной - для этого её придётся сначала конвертировать обратно во внутреннее перловское представление. Сам литерал "некая строка" неявно конвертируется во внутренне перловское представление для строк интерпретатором перед началом работы скрипта. Eugene -- What would you do with a brain if you had one?
From: Eugene Grosbein grosbein.net 20 Feb 2019 02:53 +0200
To: Valera Kolesnik 2:451/31
Subject: +key => +value
19 февр. 2019, вторник, в 09:53 NOVT, Valera Kolesnik написал(а): VK>>> Unary "-" ... VK>>> If the operand is an identifier, a string consisting of a minus sign VK>>> concatenated with the identifier is returned. VK>>> ... VK>>> One effect of these rules is that "-bareword" is equivalent to the string VK>>> "-bareword". VK>>> что я выше и продемонстрировал убрав толстую запятую EG>> Спор ни о чём, так как это полностью эквивалентные EG>> в практическом смысле определения. То же можно сказать не только EG>> про минус, но и про любую другую букву и это будет верно на практике. VK> я не спорю, а поправляю. человек, начинающий знакомство с перлом запутался в VK> одной хитрой и интересной теме и попросил прояснить. VK> насколько эта тема интересна и хитра понятно, например, по твоему заблуждению. VK> я только поясняю, как оно на самом деле есть. VK> какие вещи эквивалентные? "-" специален. поэтому мы можем написать: VK> my %h = ( -key, 'value' ); VK> а вот так уже не можем: VK> my %h = ( key, 'value' ); VK> точно также с простыми строками вне инициализации хешей: VK> my $s = -value; VK> будет работать ($s = '-value'), а: VK> my $s = value; VK> не будет (Bareword "value" not allowed while "strict subs" in use at -e line 1. VK> Execution of -e aborted due to compilation errors). VK> и как не заменяй в этих примерах '-' на любую другую букву, работать они уже не VK> будут. Ах вот ты о чём, я думал мы всё ещё в контексте вопроса. Тогда да, ты прав. Eugene -- Тестоголовые кислое свое брожение приняли за душу, распарывание чрев своих - за историю, средства, оттягивающие разложение - за цивилизацию...