[Haskell] Nadpisywanie do pliku

0

Nie chciałam robić niepotrzebnego bałaganu w poprzednim temacie wiec założyłam nowy.

Chodzi o nadpisywanie pliku. Jesli zwykle zapisywanie dziala tak:

zapisz imie = do
                 wyjscie <- openFile "plik.txt" WriteMode
                 hPutStrLn wyjscie ("Imie: " ++ imie)
	   hClose wyjscie

Tylko ze przy kolejnych uruchomieniach programu plik jest na nowo zapisywany a poprzednie rzeczy kasowane. Co zrobić żeby nie kasował tylko w kolejnej linii dopisywał?

0

Pojęcia o haskellu nie mam, ale zapewne rozwiazaniem jest
wyjscie <- openFile "plik.txt" AppendMode

0

Generalnie zamiast WriteMode starczyłoby AppendMode. Jak upierasz się na uchtywy to możnaby chociażby withFile zamiast openFile użyć, zadba o zamknięcie. No ale dlaczego bawisz się z uchwytami zamiast użyć writeFile/appendFile?

-- typ
zapiszImie :: String -> IO ()

-- 'normalnie'
zapiszImie i = appendFile "plik.txt" $ "Imie: " ++ i ++ "\n"

-- albo w point-free
zapiszImie = appendFile "plik.txt" . ("Imie: " ++) . (++ "\n")
0

Dzięki wam bardzo. Teraz wszystko chodzi jak w zegarku :d .

1 użytkowników online, w tym zalogowanych: 0, gości: 1