[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

[File -> Lines -> Chars] Logic issue (open

Flaab Mrlinux

11/15/2006 9:38:00 AM

Hi there

Just a simple question from a newbie =)

I have a file that can have N lines. Those lines are string of
characters, and each character is a sign of a combination i have to
store, but at the same time i have to be able to treat each sign of each
combination separately, in order to compare them and all.

For instance:

# Combination file

11XX22X1XX12X23
XX12XX122X212X2
XX2X11XX11XX111

My program has to return and array for each line, and that array should
have stored in it each sign of the line.

My question is...how can i Read EACH line of the file, explode each char
of the array and store it?

Thx.

--
Posted via http://www.ruby-....

3 Answers

Vincent Fourmond

11/15/2006 9:48:00 AM

0

Flaab Mrlinux wrote:
> Hi there
>
> Just a simple question from a newbie =)
>
> I have a file that can have N lines. Those lines are string of
> characters, and each character is a sign of a combination i have to
> store, but at the same time i have to be able to treat each sign of each
> combination separately, in order to compare them and all.
>
> For instance:
>
> # Combination file
>
> 11XX22X1XX12X23
> XX12XX122X212X2
> XX2X11XX11XX111
>
> My program has to return and array for each line, and that array should
> have stored in it each sign of the line.
>
> My question is...how can i Read EACH line of the file, explode each char
> of the array and store it?
>
> Thx.
>

ary = File.open(file).readlines.map {|l|
l.chomp.split //
}

--
Vincent Fourmond, PhD student
http://vincent.fourmon...

Paul Lutus

11/15/2006 9:49:00 AM

0

Flaab Mrlinux wrote:

> Hi there
>
> Just a simple question from a newbie =)
>
> I have a file that can have N lines. Those lines are string of
> characters, and each character is a sign of a combination i have to
> store, but at the same time i have to be able to treat each sign of each
> combination separately, in order to compare them and all.
>
> For instance:
>
> # Combination file
>
> 11XX22X1XX12X23
> XX12XX122X212X2
> XX2X11XX11XX111
>
> My program has to return and array for each line, and that array should
> have stored in it each sign of the line.
>
> My question is...how can i Read EACH line of the file, explode each char
> of the array and store it?

The program below reads lines and creates an array of arrays (a
two-dimensional array), each inner cell contains a single character:

-------------------------------------
#!/usr/bin/ruby -w

data = "11XX22X1XX12X23\nXX12XX122X212X2\nXX2X11XX11XX111\n"

lines = []

data.each do |line|
lines << line.split("")
end

p lines
-------------------------------------

--
Paul Lutus
http://www.ara...

Farrel Lifson

11/15/2006 9:52:00 AM

0

On 15/11/06, Flaab Mrlinux <flaab_mrlinux@hotmail.com> wrote:
> Hi there
>
> Just a simple question from a newbie =)
>
> I have a file that can have N lines. Those lines are string of
> characters, and each character is a sign of a combination i have to
> store, but at the same time i have to be able to treat each sign of each
> combination separately, in order to compare them and all.
>
> For instance:
>
> # Combination file
>
> 11XX22X1XX12X23
> XX12XX122X212X2
> XX2X11XX11XX111
>
> My program has to return and array for each line, and that array should
> have stored in it each sign of the line.
>
> My question is...how can i Read EACH line of the file, explode each char
> of the array and store it?
>
> Thx.
>
> --
> Posted via http://www.ruby-....
>
>
You can use each_byte to iterate over every character of a string.
Just be aware that it will pass an int character code, not the actual
character itself, into the associated block but you can convert it
back using the chr method like so:
irb(main):026:0> "hello".each_byte{|c|puts c.chr}
h
e
l
l
o

Farrel