2012-03-29 22 views
6

変数を書き込んでファイルに読み込もうとしています。変数は、私が作成したデータ型からのものです。Ocamlのファイルにカスタム変数を書き込んで読み込む

は役立ちます場合:

型のsys =文字列*文字列リストの ファイルを|文字列のフォルダ* SYSリスト;;

)私が行うことができますどのように

この? 私はfprintfの使用について読んできましたが、私が得たものについては何とか最初に文字列に変換しなければならなかったでしょうか?

答えて

7

タイプが変更されないことが確かな場合はinput_valueoutput_valuePervasivesから使用できます。

let write_sys sys file = 
    let oc = open_out file in 
    output_value oc sys; 
    close_out oc 

let read_sys file = 
    let ic = open_in file in 
    let sys : sys = input_value ic in 
    close_in ic; 
    sys 

read_sysあなたがsys(またはあなたが書き込みと読み出しの間のOCamlのバージョンを変更した場合)の他のバージョンで保存された値を読み取るしようとしたときに解除されます。

安全性が必要な場合は、sexplib(作成中のファイルを読み込めるようにする場合)またはbiniouなどの自動シリアライザを使用して効率的な変換を行うことができます。

+0

申し訳ありませんが、少なくとも今はうまくいくでしょう。 ありがとう、非常に! – EBM

+0

@EBM:この投稿があなたの質問に答えるなら、将来の訪問者を助けるためにそれを受け入れるべきです。 – pad

+0

@padはい、申し訳ありませんが、私は当時を忘れていたに違いない。 – EBM

関連する問題