我想阅读文件中的所有行并实现获取以下内容:
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
答案 0 :(得分:4)
您现有的代码与您尝试实现的内容的文字描述几乎没有相似之处。忽略这一点,一个简单的观察,使你当前的代码工作:你正在使用File.ReadAllText
,它返回一个巨大的文本blob - 但你后来假设它已经已经被行分隔。使用File
模块中返回文本的方法之一,即ReadLines
或ReadAllLines
。请尝试以下方法:
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
)