Jesù¸ Gabriel y GaláÏ wrote: > On Mon, Apr 27, 2009 at 8:25 PM, Dirk Dre <dad / pulf.de> wrote: >> After sitting at this problem for hours without much progress, now is >> the time that I need your help. Btw. I'm quite new to ruby. >> >> I have a file that looks like this: >> >> 00-04-00;Austragungssystem f lçÏgliche oder >> 00-04-00;quadratische LagerrçÖme inklusive 3- >> 00-04-00;poligen Wielandstecker/Gegenstecker >> 00-04-00;Technische Daten: >> 00-04-00;Elektrischer Anschluss: 230V / 50Hz >> 00002274;Wilo Temperaturfler TF >> 00002274;Temperaturschalter mit Einstellknopf >> 00002274;einschlieİÍich 2 Stk FederspannbçÏdern >> 00002274;zum Anlegen an Rohre bis DN 100. >> 00002274;Max. Betriebsspannung: 250 V >> 00002274;Max. Schaltleistung: 4 A >> 00002274;Schutzart: IP 43 >> 00002274;Schaltbereich: 30 oC bis 90 oC >> 00002274;Fabrikat: WILO >> 00002274;Typ: Temperaturschalter TF >> >> what i need is to group lines with the same serialnumber >> (eg. 00-04-00, 00002274) into one line like this: >> >> 00-04-00;Austragungssystem f lçÏgliche oder quadratische LagerrçÖme >> inklusive 3-poligen Wielandstecker/Gegenstecker Technische Daten: >> Elektrischer Anschluss: 230V / 50Hz > > > Something like this (untested) might get you started: > > s = "00-40..." #your string > h = Hash.new {|h,k| h[k] = ""} > s.each do |line| > key, value = line.split(";") > h[key] << value.chomp > end That won't quite work if there is a second semicolon on the line. Try: key, value = line.scan(/([^;]*);(.*)/).first -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407