2017-02-18 4 views
0

Ich möchte alle Zeilen aus der Datei lesen und implementieren erworben folgend:Alle Zeilen aus der Datei

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) 

Ich habe sogar versucht, durch die Datei Looping aber vielleicht falsch gemacht habe:

 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 
+4

Was ist das Problem? –

+0

Ich kann nicht alle Zeilen lesen und folgendes tun: 2. Transformiert es in eine Liste von Wörtern, 3. Versucht, die Liste des Wortes als entweder eine Forderung oder eine Frage, zu interpretieren 4. Wenn als Anspruch interpretiert, druckt die entsprechende Frage auf dem Bildschirm, 5. Wenn als Frage interpretiert, druckt der entsprechende Anspruch auf dem Bildschirm, 6. Wenn die Liste der Wörter nicht zu interpretieren, dann endet. Ansonsten wiederholt sich ab 1. Ich muss nur alle Zeilen durchschleifen und etwas damit machen. Aber wie sieht es jetzt aus, kann ich nicht alle Zeile durchschleifen –

Antwort

4

Ihr vorhandener Code hat wenig Ähnlichkeit mit Ihrer Textbeschreibung dessen, was Sie erreichen möchten. Ignorieren Sie das, eine einfache Beobachtung, um Ihren aktuellen Code arbeiten zu lassen: Sie verwenden File.ReadAllText, die einen riesigen Textblob zurückgibt - aber Sie gehen danach davon aus, dass es bereits durch Linien getrennt ist. Verwenden Sie eine der Methoden im Modul File, die den Text zeilenweise zurückgibt, dh ReadLines oder ReadAllLines. Versuchen Sie Folgendes:

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) 
) 

Oder macht schwere Verwendung von Rohren:

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

Danke Anton das funktioniert perfekt! –

Verwandte Themen