|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Valery Kondakoff 2:5020/163 22 Jan 2002 19:46:28 To : All Subject : Перекодировать содержимое переменной 1251 -> 866? -------------------------------------------------------------------------------- Я новичок в Перле. Пытюсь его использовать для автоматизации работы с текстами. Вот пример: я готовлю довольно большой FAQ для постинга в эху. Для этого мне надо разбить его на логические части (они отделены друг от друга строчкой "- end of section"), сохранить каждую из частей в отдельный файл, поменять русские буквы 'H' и 'p' на их латинские аналоги и перекодировать исходный текст в ДОСовскую кодировку (1251 -> 866). После некоторых раздумий и ковыряния в документации мне (кажется) удалось реализовать все, кроме перекодировки. Вот что у меня получилось: # --------------------------- $faq_file = "faq.rus.txt"; $out_file = "faq_pt0.txt"; # if $out_file exist we can check: do we need to reparse FAQ? if (-e($out_file)) { if (-M($faq_file) > -M($out_file)) { print "No reparsing needed!\n"; exit 0; } } open(IN, "<$faq_file") or die "Can't open $faq_file file $!"; undef $/; while(<IN>) { tr/H/H/; tr/р/p/; @faq = split("- end of section\n", $_); } close(IN); for($i = 0; $i <= $#faq; $i++) { open(OUT, ">faq_pt$i.txt") or die "Can't create faq_pt$i.txt $!"; print OUT "$faq[$i]"; close(OUT); } # ---------------------------- А можно ли автоматизировать и перекодировку? Если можно, то как? Спасибо! Best regards, Valery Kondakoff PS - я был бы благодарен, если бы знатоки Перла указали мне на огрехи, допущенные мной в вышеуказанном примере. Может есть более правильные/ эффективные/красивые способы решения проблемы? --- GoldED+/W32 1.1.5-1201 * Origin: ----> После прочтения - съесть!.. <---- (2:5020/163) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/22643c4d89be.html, оценка из 5, голосов 10
|