Jesús Gabriel y Galán
4/27/2009 7:00:00 PM
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=FCr l=E4ngliche oder
> 00-04-00;quadratische Lagerr=E4ume inklusive 3-
> 00-04-00;poligen Wielandstecker/Gegenstecker
> 00-04-00;Technische Daten:
> 00-04-00;Elektrischer Anschluss: 230V / 50Hz
> 00002274;Wilo Temperaturf=FChler TF
> 00002274;Temperaturschalter mit Einstellknopf
> 00002274;einschlie=DFlich 2 St=FCck Federspannb=E4ndern
> 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=FCr l=E4ngliche oder quadratische Lagerr=E4u=
me
> inklusive 3-poligen Wielandstecker/Gegenstecker Technische Daten:
> Elektrischer Anschluss: 230V / 50Hz
Something like this (untested) might get you started:
s =3D "00-40..." #your string
h =3D Hash.new {|h,k| h[k] =3D ""}
s.each do |line|
key, value =3D line.split(";")
h[key] << value.chomp
end
This will give you a hash where the keys are the serial numbers and
the values, the concatenated parts that correspond to that serial
number.
Jesus.