2012-09-22 13 views
6

Mam problemy z zapisaniem pliku wyjściowego w F #. Wydrukuje niekompletne dane na wyjściu. Nie jestem pewien, która część mojego kodu jest błędna lub czy istnieje lepszy sposób na zrobienie tego. Poniżej znajduje się migawka z ostatnich kilku linii w pliku wyjściowym.Zapisywanie seq w F # do pliku wyjściowego

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 

Należy zauważyć, że w ostatnim wierszu jest on niekompletny. Poniżej jest mój kod w 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])) 

Należy zauważyć, że w ostatnim wierszu, jest niekompletny. Jeśli użyję printfn zamiast zapisywać do pliku, wyświetli on wszystkie informacje w całości na konsoli.

Dzięki Kenneth

Odpowiedz

14

Spróbuj zadzwonić outData.Flush lub outData.Close a następnie sprawdzić zawartość pliku. Niektóre dane mogą nadal znajdować się w buforze.

+0

Dzięki. Rozwiązuje problem. –

+0

@KennethGoh Zobacz również [tę odpowiedź] (http://stackoverflow.com/a/3720241/974789), aby dowiedzieć się, jak uporządkować zajęcia pochłaniające zasoby. – bytebuster

+5

@KennethGoh Jeśli to rozwiąże problem, kliknij to puste pole obok odpowiedzi ... –

Powiązane problemy