> -----Original Message-----
> From: rashworth [mailto:rashworth / mail.warpnet.net]
> Sent: Friday, April 20, 2001 6:54 PM
> To: ruby-talk ML
> Subject: [ruby-talk:13928] Re: Question on gsub with a block
> 
> 
> Dear Mr. Zagorodnikov,              Friday, AM
> 
> I have a question of Fonts for Ruby.
> Given a plain file where lines 1, 3, 5, ... are in English, and
> lines 2, 4, 6, ... are in Russian.
> Do you have some Ruby code to read and print the English lines?
> Then also do you have some Ruby code to read and print the Russian?
> Lastly, can I read and print BOTH the English and Russian lines?
There is no problem, given russian text is in KOI-8, ISO-8859-4 or Win-1251 (most common case) encoding.
In this case, Russian letters map to symbols in 128-255 ASCII codes range. So, to read different lines,you
read all of them, and then try to find any symbol from russian code map that you use in it. 
I.e., we have a text like this (win-1251 encoding):

test1
֧1
test2
֧2


then, you may use:
text.each_line do |line|
    if /[\0200-\0377]/ =~ line
        do what you need with russian string
    else
        do what you need with english string
    end
end

Using this you may filter strings too.
But ... if english versions of your lines may use a 128-255 range symbols (pseudographics, math symbols, etc.),
then it may be a problem ... then you must make a code map (I may provide you with one for win-1251 if you need it),
which has only the meaning russian symbols (33 letters in our language, making 66 for both normal and capital ones),
and check string for presence of one of these characters.

Also, it may be that you have your file in Unicode or UTF-8 encoding - this is a bit tougher but algorithm is similar.

Don't hesitate to ask more :)))

> I use the Windows ME Operating System with an Intel chip.
Makes no difference, except line ending characters.

Thanks for your attention
Aristarkh A Zagorodnikov, Lead Programmer, W3D Group
http://www.w3d.ru /// xm / w3d.ru /// ICQ UIN 36987938