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