Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Перекодировать содержимое переменной 1251 -> 866?   Valery Kondakoff   22 Jan 2002 19:46:28 
 Re: Перекодировать содерж имое переменной 1251 -> 866?   Sergey V. Leschenko   22 Jan 2002 21:57:19 
 Перекодировать содерж имое переменной 1251 -> 866?   Valery Kondakoff   23 Jan 2002 00:23:48 
 Re: Перекодировать содерж имое переменной 1251 -> 866?   Artem Chuprina   23 Jan 2002 12:18:00 
 Перекодировать содерж имое переменной 1251 -> 866?   Valery Kondakoff   23 Jan 2002 20:30:04 
 Re: Перекодировать содерж имое переменной 1251 -> 866?   Serikoff   25 Jan 2002 15:07:00 
 Перекодировать содержимое переменной 1251 -> 866?   Alexander Lelyakin   25 Jan 2002 13:59:18 
Архивное /ru.perl/22643c4d89be.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional