我問了一個類似的問題,不知道什麼不清楚,但我會再試一次。我有一個文件。文件名是file.txt,我將file.txt讀入列表中。現在我可以將其打印到控制檯,它會顯示:文件IO和列表處理
blah
blah
blah
blah
這很好。完美:)現在我將如何轉發到一個新的文件?使新文件包含:
blah
blah
blah
blah
沒有更多,也沒有少。這裏是我用來讀取列表中的文件的代碼: {ok,Device} = file:open(「file.txt」,[read]), Li = readdata(Device,[])。
readdata(Device, Accum) ->
case io:get_line(Device, "") of
eof -> file:close(Device), Accum;
Line -> readdata(Device, Accum ++ [Line])
end.
如此反覆,以顯示新的文件正是我讀的顯示器,沒有多餘的人物,不是所有的1個line..etc ..一樣的:)
文件是非常小,在其他語言的簡單,如: '數據[] = file.read( 「file.txt的」)'' 開放= file.open( 「new.txt」)' '的foreach(數據線)'' file.write(開放式,線)'' end' ' 我其實不想「複製」文件中,這僅僅是我使用來解釋該定義我想把數據列表寫到一個新文件中,就像它在另一個文件中出現的一樣。我可能希望修改列表並將其寫回到同一個文件中。因此,複製只是我使用的一個術語。 – ace007
Erlang的列表模塊確實有一個foreach函數,用於處理列表中的副作用。你可以看看。我會嘗試把答案和一些代碼示例一起。 – dsmith
我已經使用foreach,出於某種原因輸出似乎全部在文件中的1行,我試過foreach和映射相同的結果。 – ace007