从文件中读取所有行

时间:2017-02-18 19:25:24

标签: f#

我想阅读文件中的所有行并实现获取以下内容:

 let s1 = File.ReadAllText("\\test.txt")

   let splitArr = s1.Split[|' '|] |> Array.toList
   let checkList = check splitArr
   let final = String.concat " " checkList |> toLower |> makeUpper
   Console.Write(final)

我甚至试图在文件中循环但可能做错了:

        let myfile = File.OpenText("\\test.txt")       
         let fileLoop() = 
                 let s1 = myfile.ReadLine()              
                 let splitArr = s1.Split[|' '|] |> Array.toList
                 let checkList = check splitArr
                 let final = String.concat " " checkList |> toLower |> upper
                 Console.Write(s1)
         while fileLoop() do ignore None

1 个答案:

答案 0 :(得分:4)

您现有的代码与您尝试实现的内容的文字描述几乎没有相似之处。忽略这一点,一个简单的观察,使你当前的代码工作:你正在使用File.ReadAllText,它返回一个巨大的文本blob - 但你后来假设它已经已经被行分隔。使用File模块中返回文本的方法之一,即ReadLinesReadAllLines。请尝试以下方法:

File.ReadLines("\\test.txt")
|> Seq.iter (fun s1 ->
    let splitArr = s1.Split[|' '|] |> Array.toList
    let checkList = check splitArr
    let final = String.concat " " checkList |> toLower |> makeUpper
    Console.WriteLine(final)
)

或者更多地使用管道:

File.ReadLines "\\test.txt"
|> Seq.iter (fun s1 ->
    s1.Split [|' '|] 
    |> Array.toList
    |> check
    |> String.concat " "
    |> toLower 
    |> makeUpper
    |> Console.WriteLine
)