F#输出文本文件抛出时输出文本文件错误

时间:2014-11-19 22:59:18

标签: c# f#

因此,当我使用StreamReader读取文本文件时,我可以在下面创建gpa序列。

let pathtoinfile = @"c:\temp\Grades.txt";
let reader = new StreamReader(pathtoinfile)
let csv = reader.ReadToEnd()
let allInfo =
    csv.Split([|'\n'|])

let gpa =
    csv.Split([|'\n'|])
    |> Seq.map (fun line -> line.Split([|','|]))
    |> Seq.map (fun values -> float values.[5])

现在我将文件中的信息转换为数组并放入输出文件中。

let allArray = Seq.toArray allInfo;
let pathtooutfile = @"c:\temp\Grades2.txt";
File.WriteAllLines(pathtooutfile , allArray)

现在,当我尝试拆分文件时,我得到一个IndexOutOfRangeException当我将数组写入文件时,它是否会更改格式?不确定我哪里出错了,因为当我通过检查比较它们时,两个文件看起来都是一样的。

let reader2 = new StreamReader(pathtooutfile)
let csv2 = reader2.ReadToEnd()

let gpa2 =
    csv2.Split([|'\n'|])
    |> Seq.map (fun line -> line.Split([|','|]))
    |> Seq.map (fun values -> float values.[5])

1 个答案:

答案 0 :(得分:1)

好的,回答我自己的问题。当您写入outfile时,会出现一个位于文件底部的空白行。解决方法是在拆分字符串之前修剪csv字符串以删除所有空格。希望有一天能帮到某人。

let csv = csv.Trim()