home *** CD-ROM | disk | FTP | other *** search
/ Kompuutteri Kaikille K-CD 2002 #8 / K-CD_2002-08.iso / WatzNew / data.cab / strings.lib < prev    next >
Text File  |  2000-07-02  |  2KB  |  48 lines

  1. # ------------------------------------------------------------------------------
  2. # STRING ROUTINES LIBRARY by A.I.Studio / Igor Afanasyev
  3. # ------------------------------------------------------------------------------
  4.  
  5. #-------------------------------------------------------------------------------
  6. sub int_initialize {
  7. #-------------------------------------------------------------------------------
  8.   my $cp1251 = "αßΓπΣσ╕µτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ └┴┬├─┼¿╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀";
  9.   my $cp866 = "áíóúñѱªº¿⌐¬½¼¡«»αßΓπΣσµτΦΘΩδ∞φε∩Çüéâäà≡åçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒ";
  10.  
  11.   my @cp1251 = split //,$cp1251;
  12.   my @cp866 = split //,$cp866;
  13.  
  14.   for (my $i = 0; $i < $#cp866; $i++) {
  15.     $cp866to1251{$cp866[$i]} = $cp1251[$i];
  16.   }
  17. } # end sub
  18.  
  19. #-------------------------------------------------------------------------------
  20. sub cp866to1251 {
  21. #-------------------------------------------------------------------------------
  22.   @a = split //,$_[0];
  23.  
  24.   for (my $i = 0; $i < $#a; $i++) {
  25.     if (exists $cp866to1251{$a[$i]}) {
  26.       $a[$i] = $cp866to1251{$a[$i]};
  27.     }
  28.   }
  29.   return join('',@a);
  30. } # end sub
  31.  
  32. #-------------------------------------------------------------------------------
  33. sub ProcessDosResponse {
  34. #-------------------------------------------------------------------------------
  35.   my $s = $_[0];
  36.   $s = &cp866to1251($s);    # converting Russian Dos 866 to Win1251 codepage
  37.   $s =~ s/\r*\n/\n/g;        # adjusting line breaks
  38.   $s =~ s/[ \t]*\n[ \t]*/\n/g;    # trimming lines
  39.   $s =~ s/\r*\n/<BR>/g;        # substituting line breaks to '<BR>' tags
  40.   return $s;
  41. } # end sub
  42.  
  43. # ------------------------------------------------------------------------------
  44.  
  45. &int_initialize;
  46.  
  47. return 1; # true
  48.