異なるセパレータをCSVからデータを読み、いくつかの行が他のファイルに、0'\t
でフォーマットされているが、空間0'
でフォーマットされています。プロローグ、Iはプロローグに異なるCSVファイルを読み込むために必要
は、私が使用:
read_points(Filename, Points) :-
csv_read_file(Filename, P,[convert(true),functor(pt),separator(0'\t)]),
csv_read_file(Filename, P,[convert(true),functor(pt),separator(0')]).
しかし、私に二つの異なるリストを返すので、それはうまくいきません。
どのように私はそれがcorrectleyコーディングすることができますか? ありがとうございます。
EDIT:'0\t
と ファイルの例:'0
と
0.1 5
3 5
5 8
は、例:
0.1 5
3 5
5 8
さまざまな種類のCSVファイルのそれぞれの行の例を表示できますか? – lurker
私は質問を更新しました。 最初の例はTabキーで作成され、2番目の例はスペースバーのみで作成されます。 – UserFromTheSpace
だから本当に、あなたがやりたいと思っているものをスペースまたはタブを使用して、ファイルがあるかどうかを把握し、それに応じてリストを返します単一の述語を持っているのですか?個別の 'csv_read_file'呼び出しは、対応する正しいファイルで正常に動作することを示します。残念なことに、いったんリストをインスタンス化すると、 'P'は、それを再インスタンス化することはできません。自動化しようとしている場合は、ファイルの区切り文字を調べるロジックを追加する必要があります。 – lurker