1
作爲輸入數據,我有一個包含100行的文件。在每一行中,我都有一個數字,後面跟着點。我需要越來越多地打印到另一個文件中。Prolog,文件操作
我知道從一個文件讀取並打印到一個文件中查看並告訴,但是當涉及到從1到100的所有文件時,無需讀取(X),讀取(Y)等等在線看()我迷路了。那麼你會如何解決這個問題?
作爲輸入數據,我有一個包含100行的文件。在每一行中,我都有一個數字,後面跟着點。我需要越來越多地打印到另一個文件中。Prolog,文件操作
我知道從一個文件讀取並打印到一個文件中查看並告訴,但是當涉及到從1到100的所有文件時,無需讀取(X),讀取(Y)等等在線看()我迷路了。那麼你會如何解決這個問題?
請注意,這個描述比實際的代碼要冗長得多。
?- read_input(L), msort(L, S), write_output(S).
即, (使用Edinburgh-style I/O)see輸入文件,保持read ING,在直到輸入一個列表存儲= end_of_file
(然後關閉列表),即使用msort後命令列表,然後tell輸出文件,並用一個循環寫每個列表中的元素。您可以使用長度/ 2來檢查實際上是否有100個數字。
編輯未經測試的代碼來讀取當前輸入
read_list(L) :-
read(N), N \= end_of_file
-> L = [N|Ns], !, read_list(Ns)
; L = []
.
列表,但你如何去通過列表?到目前爲止,在我的程序中,我逐行閱讀,比如{read(X),read(Y)}讀取前兩行。所以對於文件中的100個數字來說,這將是很多。你如何將它們放入列表中? –
看到我的編輯,你需要看到/ 1之前的文件,並看到/ 0之後... – CapelliC
它的工作原理,但什麼是 - >?我使用:看到('C:// Documents and Settings // numbers.txt'),讀取(L),讀取列表(L),msort(L,X),看到, tell('C:// Documents and設置// numbout.txt'),告訴。 –