From: Ignatz Hafflegab [mailto:mcpeople / hotmail.com]
# whole_file = open('16bytes', 'rb') { |f| f.read}
# ar1 = whole_file.unpack('S*')
# puts('Enter an increase value')
# incVal=gets.chomp
# incVal = incVal.to_i
2 lines above can be merged like,
incVal = gets.to_i
# ar2 = ar1.collect { |x| x + incVal}
# ar2= ar2.pack('S*')
# open('output','wb'){|f| f.write ar2}
#
# Is there any way to iterate over an array and apply a conditional like
# if x < 45000 then x = x + incVal
refer back to the line containing
ar2 = ar1.collect { |x| x + incVal}
change it to any of the ff (pls test all)
ar2 = ar1.collect { |x| x<45000 ? (x + incVal) : x}
or
ar2 = ar1.collect { |x| if x<45000 then (x + incVal) else x end}
or
ar2 = ar1.select{|x| x<45000}.collect{|x| x + incVal}
i usually prefer the last one, since i think like: "select those elements < 45000, then with those collections, increment each". but that is just me.
welcome to ruby.
kind regards -botp