Trying to create an array with AA-ZZ for dutch postal codes

the array postcodes should be filled with strings starting looking
like

[“AA”,AB",AC"…“BA”,“BB”,“BC” to “ZZ”] 26*26 entries.

i’ve come up with the following to create it,

postcodes = Array.new

create postal codes array

W = String.new()
X = String.new()

(A…Z).each do |W| {

puts W
(A…Z).each do |X| {
postcodes.push("#{W}#{X}")

   }
 }

puts(postcodes)

this code produces

hpricot-test.rb:20: syntax error, unexpected tCONSTANT, expecting kDO
or ‘{’ or ‘(’
hpricot-test.rb:22: odd number list for Hash
hpricot-test.rb:25: syntax error, unexpected ‘}’, expecting kEND
hpricot-test.rb:57: syntax error, unexpected $end, expecting kEND

what am i doing wrong, is there an easier (rubier) way?

unknown wrote:

the array postcodes should be filled with strings starting looking
like

[“AA”,AB",AC"…“BA”,“BB”,“BC” to “ZZ”] 26*26 entries.

what am i doing wrong, is there an easier (rubier) way?

(“AA”…“ZZ”).to_a

On Tue, May 6, 2008 at 10:40 PM, [email protected] wrote:

             }

what am i doing wrong, is there an easier (rubier) way?

(“AA”…“ZZ”).each {|x| p x}

Harry

postcodes = “AA”…“ZZ”.to_a

Farrel

2008/5/6 [email protected]:

[email protected] wrote:

 }

what am i doing wrong, is there an easier (rubier) way?

Sorry but there are many errors here: First some code that works:

postcodes = Array.new

(‘A’…‘Z’).each do |x|
(‘A’…‘Z’).each do |y|
postcodes << “#{x}#{y}”
end
end

puts(postcodes)

Note that the A…Z is now ‘A’…‘Z’. This is because A is a reference to
a constant called A which you haven’t defined but ‘A’ is a upper case
letter.

When doing a xxx.each you can do it either way:

(‘A’…‘Z’).each do |x|
puts x
end

or

(‘A’…‘Z’).each {|x|
puts x
}

You seem to be mixing both.

Your use of W and X as variables. Firstly upper case letters are
constants so you can not use them as looping variables. Infact you do
not need to predeclare the variables at all.

On May 6, 3:54 pm, Peter H. [email protected] wrote:

create postal codes array

                }

hpricot-test.rb:57: syntax error, unexpected $end, expecting kEND
end
(‘A’…‘Z’).each do |x|
You seem to be mixing both.

Your use of W and X as variables. Firstly upper case letters are
constants so you can not use them as looping variables. Infact you do
not need to predeclare the variables at all.

thanx

I’m having fun with arrays; here’s my version:

((a = (‘A’…‘Z’).to_a) * (b=a.length)).zip(a.collect{|e|
[e]*b}.flatten).collect{|e| e.join}.join("\n")

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs