2017-01-26 79 views
2

我是Haskell的新手,IO仍然有點混亂。我有一個我想要讀取的txt文件,在文本文件中添加數字,然後將其寫入文本文件。該文件如下所示:如何從文件中讀取數據並將其添加到Haskell中的文本文件中

2 
3 

的號碼都被我知道如何讀取文件內容,然後將其寫入到另一個文件中,但新的行字符分隔的,我不知道我該怎麼操作它,或者如果我必須將這些信息投給Int?

module Main where 

import System.Environment 

-- | this fuction read first line in a file and write out to src file 
-- src "src.txt", des "des.txt" 
copyFirstLine :: FilePath --^path to input file 
       -> FilePath --^path to output file 
       -> IO() 
copyFirstLine src dst = do 
contect <- readFile src 
let (fst :rest) = (lines contect) 
writeFile dst fst 

main = do 
[src,dst] <- getArgs 
copyFirstLine src dst 

在此先感謝。

回答

3

我不能確定你的'操縱'意味着什麼,但我會假設你需要整數計算。作爲字符串操作並不困難。

如果你hoogle簽名String -> Int你可以找到read

-- | this fuction read first line in a file and write out +1 result 
-- to src file src "src.txt", des "des.txt" 
eachPlusOne :: FilePath --^path to input file 
      -> FilePath --^path to output file 
      -> IO() 
eachPlusOne src dst = do 
    contect <- readFile src 
    let lns = lines contect :: [String] 
     ints = map ((1+) . read) lns :: [Int] 
     outs = unlines . map show $ ints :: String 
    writeFile dst outs 

如果使用足夠新GHC的版本,你可以使用readMaybe這是可取的。

+0

非常感謝jejea! – agarc

相關問題