|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander Reznikov 2:4600/220 29 Jun 2003 22:38:01 To : Max Teplov Subject : вырезание UUE --------------------------------------------------------------------------------
Как-то Max Teplov писал к Artem Chuprina, но я услышал и решил ответить :
MT> спасиба.в пpинципе я сделал yдаление стpоки длиной не менее 30
MT> симовлов, начинающейся с M и без пpобелов. ясно, что сyществyют стpоки
MT> длиной менее 30 симоволов, но в пpиниципе, pезyльтат yстpаивает...
M вовсе не является обязательным. M - это всего лишь длинна исходной строки,
закодированная всё по тому же алгоритму. Более правильно проверить можно
как-нибудь так:
sub checkuueline
{
$_ = shift;
return 0 if $line !~ /^\s*([\x60\x21-\x5f])([\x60\x21-\x5f]*)\s*$/;
my $uulen = ord($1) == 0x60? 0: ord($1)-0x20;
my $datalen = (int($uulen/3)+($uulen%3? 1: 0))*4;
return $datalen == length($2)? 1: 0;
}
Это "навскидку", не проверял, но работать должно. Единсвенное - это дело
правильно обрабатывает случай строки:
`
И скажет, что это тоже uue :) И вообще, можно ещё проверять минимальную длинну
строки, чтобы исключить созможные случаи случайных совпадений.
ps: А вообще, я так понял, что это для фидошных нужд. Моё личное мнение -
вырезать uue нехорошо. Если кто-то сильно наглеет, то можно и административными
мерами обойтись. :(
Баюшки !!
[ Черёмухин aka Гибкость TEAM ] [ UU9JЁКЛМH ]
--- Дедушка GoldED+ 1.1.5-2003.06.24 (Win9x 4.10.2222 i586)
* Origin: Сплав фанеры и алюминия (c) сестра (2:4600/220)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/133343eff4971.html, оценка из 5, голосов 10
|