in ruby, giusto per fare lo spaccone:

a = File.new(ARGV[0]).read
b = File.new(ARGV[1]).read

File.open(ARGV[2], 'w') { |f| f.write((1...a.length).to_a.collect {
|i| (a[i] & b[i]).chr})}

(non sono riuscito ad accorciarlo di più...)

versione leggibile:
a = File.new(ARGV[0]).read
b = File.new(ARGV[1]).read

c = []

(1...a.length).each do |i|
  c << (a[i] & b[i]).chr
end

File.open(ARGV[2], 'w') do |f|
  f.write c.join
end

manca la gestione degli errori (se a o b mancano, se non sono uguali,
se c non è scrivibile).

non ho il gcc a portata di mano, quindi la versione in c la faccio poi.


--
Per REVOCARE l'iscrizione alla lista, inviare un email a
debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a listmas...@lists.debian.org

To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Rispondere a