4

SML でファイルからテキストを読み込もうとしていますが、うまくいきません。これが私が試していることです

fun read file =
let val inStream = TextIO.openIn file

in
        TextIO.StreamIO.input1 inStream
end

実際の関数呼び出しinput1は重要ではありません。私が望むのは、ファイルから読み取ることができることだけです。

4

1 に答える 1

6

あなたのエラーは にありTextIO.StreamIO.input1、おそらくTextIO.input1.

StreamIO を使用してファイルを操作する必要がある/したくない場合は、によってinstream返される型を関数で に変換する必要があります。openINStreamIO.instreamTextIO.getInstream

SML Basis ライブラリのTEXT_IO signatureで、これらすべてについて詳しく読むことができます。

読み取りが完了したら、ファイルを閉じることをお勧めします。

アップデート

コメントで提案されているように、ファイル全体を読み取るか (ファイルが小さいことがわかっている場合)、1 行ずつ読み取ることができます。
コンテンツを単語ごとに取得したくない場合、最も簡単な方法は、コンテンツを空白で分割することです。このようにして、ファイルの個々の「単語」を表す文字列のリストが作成されます。

于 2013-01-25T02:00:21.967 に答える