2011-01-14 15 views
2

erlangのList in Stringをどのように変換できますか? Erlangリストから文字列を取得する方法

マイリストビュー:

[{{19,59,51}、{} 2011,1,14、 "FFF"}、{{19,59,47}、{2011,1 、14}、 "ASDfff"}]

ありがとうございます。

+2

このようなリストの例を挙げることはできますか? –

+2

そして、どのような文字列のように見える? – chris

答えて

4

非常に単純なことが

List = [{{19,59,51},{2011,1,14},"fff"}, 
     {{19,59,47},{2011,1,14},"ASDfff"}], 
IOList = io_lib:format("~w", [List]), 
FlatList = lists:flatten(IOList), 

だろうが、これらは、あなたがより良い方法でフォーマットしたいことがあり、タイムスタンプ、

のようなもののように見えるよう
FormattedIOLists = 
    [ io_lib:format("~4..0B-~2..0B-~2..0B ~2..0B:~2..0B:~2..0B ~s", 
        [YYYY,M,D, HH,MM,SS, Comment]) 
    || {{HH,MM,SS},{YYYY,M,D},Comment} <- List ], 
FormattedFlatLists = 
    [ lists:flatten(io_lib:format("~4..0B-~2..0B-~2..0B ~2..0B:~2..0B:~2..0B ~s", 
           [YYYY,M,D, HH,MM,SS, Comment])) 
    || {{HH,MM,SS},{YYYY,M,D},Comment} <- List ], 

あなたの請求書によく合うかもしれません。シェルの迅速かつ汚いインタラクティブ出力の場合

9> [ io:format("~4..0B-~2..0B-~2..0B ~2..0B:~2..0B:~2..0B ~s~n", [YYYY,M,D, HH,MM,SS, Comment]) || {{HH,MM,SS},{YYYY,M,D},Comment} <- List ].     
2011-01-14 19:59:51 fff 
2011-01-14 19:59:47 ASDfff 
[ok,ok] 
10> lists:foreach(fun({{HH,MM,SS},{YYYY,M,D},Comment}) -> io:format("~4..0B-~2..0B-~2..0B ~2..0B:~2..0B:~2..0B ~s~n", [YYYY,M,D, HH,MM,SS, Comment]) end, List). 
2011-01-14 19:59:51 fff 
2011-01-14 19:59:47 ASDfff 
11> 

ほとんどの場合、リストの再帰的なリストを構築することに注意してください(iolists)は、それらのiolistsを平坦化するよりも行うにははるかに良いものです。ほとんどの出力関数は出力データのiolistsを直接受け入れるので、実際の出力が行われる前にリストを平坦化することによって何も得られません。

1

多分ちょうど:

io_lib:format("~w", [[{{19,59,51},{2011,1,14},"fff"},{{19,59,47},{2011,1,14},"ASDfff"}]]). 
関連する問題