2012-09-22 12 views
6

F#で出力ファイルを書き込む際に問題があります。不完全なデータを出力に出力します。私のコードのどの部分が間違っているのか、それとももっと良い方法があるのか​​分からない。以下は、出力ファイルの最後の数行のスナップショットです。F#でseqを出力ファイルに書き込む

NKU12,201209121039,8960,8960,8960,8960 
NKU12,201209121040,8960,8960,8960,8960 
NKU12,201209121041,8960,8960,8960,8960 
NKU12,201209121043,8960,8960,8960,8960 
NKU12,201209121045,8960,8 

最後の行では不完全であることに注意してください。以下 は、最後の行には、それが不完全であることをF#

let outFile = new StreamWriter("Test.csv") 

let dataFrame = lines fileName 
       |> Seq.map (fun y -> y.Split([|','|])) 
       |> Seq.filter (fun some function) 
       |> Seq.iter (fun y -> outFile.WriteLine(sprintf "%s,%s,%s,%s,%s,%s" y.[0] (y.[1]+y.[2]) y.[3] y.[4] y.[5] y.[6])) 

注私のコードです。ファイルに書き込む代わりにprintfnを使用すると、すべての情報がコンソールに完全に表示されます。

おかげ ケネス

答えて

14

はoutData.FlushまたはoutData.Closeを呼び出して、ファイルの内容を確認してください。一部のデータはまだバッファに残っている可能性があります。

+0

ありがとうございました。それは問題を解決します。 –

+0

@KennethGohまた、リソースを消費するクラスを整理する方法については、[この回答](http://stackoverflow.com/a/372​​0241/974789)を参照してください。 – bytebuster

+5

@KennethGoh問題が解決する場合は、答えの横にある中空のチェックボックスをクリックしてください... –

関連する問題