2011-01-14 6 views
2

어떻게 목록에서 문자열을 erlang으로 변환 할 수 있습니까? 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 ], 

귀하의 청구서에 더 잘 어울릴 수 있습니다. 쉘에 신속하고 더러운 대화 형 출력을 위해

, 목록 (iolists)의 재귀 목록을 구축 대부분의 경우 그 iolists 평탄화보다 할 수있는 더 나은 것입니다

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를 받아들이므로 실제 출력이 나오기 전에리스트를 평탄화함으로써 아무 것도 얻지 못합니다.

1

어쩌면 단지 :

io_lib:format("~w", [[{{19,59,51},{2011,1,14},"fff"},{{19,59,47},{2011,1,14},"ASDfff"}]]). 
관련 문제