7th toRuby、第8章クラスとモジュール
基礎の基礎だけど、せっかくなのでtoRubyでやったことを復習したい。
前々回はクラスについて学んだので、その中で少し盛り上がった継承を使ってみた。
Fileを継承して、DICOMの中身をタグ単位でHashに入れて、配列にしまう。
DICOMフルセットではないけど、これ、仕事で結構使えそう。
require "kconv" class Rdicm < File def readlines skip_to_body lines = [] idx = 0 while tag = read_tag get_element_info body = read_body each_line = {} each_line["TAG"] = tag each_line["VR"] = @vr each_line["SIZE"] = @size each_line["BODY"] = body lines[idx] = each_line idx += 1 end return lines end def get_element_info @vr = read(2) if /OB/ =~ @vr || /SQ/ =~ @vr || /OW/ =~ @vr seek(2,IO::SEEK_CUR) size_a = read(4).unpack("L") else size_a = read(2).unpack("S") end @size = size_a[0].to_i end end