御時間ありがとうございます!
私はこのようなクラスを取得します
class Vuser
def initialize (logfile_name, iteration_hash)
@logfile_name = logfile_name
@iteration_hash = iteration_hash
end
attr_accessor :logfile_name, :iteration_hash
def output_iteration_info ()
puts @logfile_name
puts @iteration_hash
end
end
また、Vuser クラスのインスタンスを格納するための配列があります。アレイの名前が vuser_ary だとしましょう。
この配列( vuser_ary )をバイナリファイルに保存したいのですが、それはシリアライゼーションと呼ばれていると思います。私はそれをグーグルで検索し、標準ライブラリのマーシャルがこれを実行できることを発見しました。これは、インターネット上の例に従ってこれを行う方法の例です。
#serialization
File.open("some.file","wb") do |file|
Marshal.dump(vuser_ary,file)
end
#loading
vuser_ary = nil
File.open("some.file","rb") {|f| vuser_ary = Marshal.load(f)}
しかし、some.fileのサイズを確認すると. わずか4バイトであることがわかりました。次に、some.file に保存されているデータが参照である可能性がありますが、vuser_ary の値ではないことに気付きました。
次に、私の質問は、vuser_ary の値をバイナリ ファイルに保存する方法です。それを達成するためにコードを変更するにはどうすればよいですか? 前もって感謝します!
ところで: vuser_ary に格納される値は次のようになります。
RO_3.2_S4_CommericalRealEstate1_274.log
{1=>"不合格", 2=>"不合格", 3=>"合格", 4=>"合格", 5=>"不合格"}
RO_3.2_S4_CommericalRealEstate1_275.log
{11=>「不合格」、2=>「不合格」、3=>「不合格」、4=>「合格」、5=>「不合格」
RO_3.2_S4_CommericalRealEstate1_276.log
{1=>"不合格", 2=>"不合格", 3=>"合格", 4=>"合格", 5=>"不合格"}
RO_3.2_S4_CommericalRealEstate1_277.log
{1=>"不合格", 2=>"不合格", 3=>"合格", 4=>"合格", 5=>"不合格"}
RO_3.2_S4_CommericalRealEstate1_278.log
{1=>"不合格", 2=>"不合格", 3=>"合格", 4=>"合格", 5=>"不合格"}
RO_3.2_S4_CommericalRealEstate1_279.log
{1=>"不合格", 2=>"不合格", 3=>"合格", 4=>"合格", 5=>"不合格"}
RO_3.2_S4_CommericalRealEstate1_280.log
{1=>"不合格", 2=>"不合格", 3=>"不合格", 4=>"合格", 5=>"不合格"}