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*8O[?R:?DQ^0,DI_P
MX1VD)\CY)GV-ZQFAQX[PVJX?-37;BSLVXV)K$CW6G"F'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````````````````.````@```'-T"\*`"````````$`&``M_-4`F?/4`2W\U0"9\]0!+?S5`)GSU`%02P$"'P`4
M````"`!+N(A.K5/GYS8````^````&@`D`````````"````"N````[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
--
Тестоголовые кислое свое брожение приняли за душу, распарывание чрев
своих - за историю, средства, оттягивающие разложение - за цивилизацию...