|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Sergey Gernichenko 2:5079/49.18 08 Dec 2003 14:36:38 To : Vadim Tzirulnicov Subject : Re: Win2Dos/Dos2Win -------------------------------------------------------------------------------- В понедельник, 08 декабря 2003 года, в 00:22, ты писал(а) All: VT> Hужно эхотагом осуществить сабжевые действия. В инете таблий VT> перекодирвок не нашёл. Hа CPAN'е ничего подходящего также нет... #Параметры для процедуры перекодировки: строка, из какой кодировки, в какую. #0 - dos; 1 - win; 2 - koi sub trans { @tabl=("АБВГДЕЁЖЗИЙКЛМHОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэю яь", #dos "АБВГДЕиЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯрстуфхёцчшщъыьэюяЁётуфхцчшщъыьэю №", #win "стччфхіцъщъыьэюяЁтуфхцшуюыэЪщшьрёБВЧЗДЕгЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬА Сѕ"); #koi $instr= $_[0]; $outstr=""; for ($i=0; $i<length($instr); $i++) { $symb=substr($instr, $i, 1); $pos=index($tabl[$_[1]], $symb); if ($pos>=0) { $newsymb=substr($tabl[$_[2]], $pos, 1); $outstr.=$newsymb; } else { $outstr.=$symb; } } return ($outstr); } Если тебе нужно только сабжевое преобразование, то можно обойтись tr: #DosToWin tr /\x80-\xAF\xE0-\xF1/\xC0-\xFF\xA8\xB8/; #WinToDos tr /\xC0-\xFF\xA8\xB8/\x80-\xAF\xE0-\xF1/; До свидания, *Vadim* С уважением, *Sergey*. ... А сегодня хорошая погода --- WinNT 5.1.2600-Service_Pack_1 i1586 Eng, AS Perl5.6.1, Borland C++ v5.02 * Origin: Жизнь прекрасна и удивительна: живу и удивляюсь (2:5079/49.18) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/34353fd43903.html, оценка из 5, голосов 10
|