CSV to HTML translation: Difference between revisions
Content added Content deleted
(Make Python image fit nicely with following section.) |
|||
Line 496: | Line 496: | ||
<tr><td>The multitude</td><td>Behold his mother! Behold his mother!</td></tr> |
<tr><td>The multitude</td><td>Behold his mother! Behold his mother!</td></tr> |
||
</table></pre> |
</table></pre> |
||
=={{header|Prolog}}== |
|||
Uses DCG. Works with SWI-Prolog.<br> |
|||
===Simple solution=== |
|||
<lang Prolog>csv_html :- |
|||
L = "Character,Speech |
|||
The multitude,The messiah! Show us the messiah! |
|||
Brians mother,<angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry> |
|||
The multitude,Who are you? |
|||
Brians mother,I'm his mother; that's who! |
|||
The multitude,Behold his mother! Behold his mother!", |
|||
csv_html(L, Out, []), |
|||
string_to_list(Str, Out), |
|||
writeln(Str). |
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|||
% simple HTML |
|||
% |
|||
csv_html(L) --> |
|||
"<TABLE>\n", |
|||
csv_tr(L), |
|||
"</TABLE>". |
|||
csv_tr([]) --> []. |
|||
csv_tr(L) --> |
|||
"<TR>\n", |
|||
csv_td(L, S), |
|||
"\n</TR>\n", |
|||
csv_tr(S). |
|||
csv_td(L, S) --> |
|||
"<TD>", |
|||
csv_td_in(L, S), |
|||
"</TD>". |
|||
csv_td_in([], []) --> []. |
|||
csv_td_in([10|L], L) --> []. |
|||
csv_td_in([44|L], S) --> |
|||
"</TD><TD>", |
|||
csv_td_in(L,S). |
|||
csv_td_in([H|T], S) --> |
|||
[H], |
|||
csv_td_in(T, S). |
|||
</lang> |
|||
OutPut : |
|||
<pre><TABLE> |
|||
<TR> |
|||
<TD>Character</TD><TD>Speech</TD> |
|||
</TR> |
|||
<TR> |
|||
<TD>The multitude</TD><TD>The messiah! Show us the messiah!</TD> |
|||
</TR> |
|||
<TR> |
|||
<TD>Brians mother</TD><TD><angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry></TD> |
|||
</TR> |
|||
<TR> |
|||
<TD>The multitude</TD><TD>Who are you?</TD> |
|||
</TR> |
|||
<TR> |
|||
<TD>Brians mother</TD><TD>I'm his mother; that's who!</TD> |
|||
</TR> |
|||
<TR> |
|||
<TD>The multitude</TD><TD>Behold his mother! Behold his mother!</TD> |
|||
</TR> |
|||
</TABLE> |
|||
</pre> |
|||
===Extra credit solution=== |
|||
<lang Prolog>csv_html_plus :- |
|||
L = |
|||
"Character,Speech |
|||
The multitude,The messiah! Show us the messiah! |
|||
Brians mother,<angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry> |
|||
The multitude,Who are you? |
|||
Brians mother,I'm his mother; that's who! |
|||
The multitude,Behold his mother! Behold his mother!", |
|||
csv_html_plus(L, Out1, []), |
|||
string_to_list(Str1, Out1), |
|||
writeln(Str1). |
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|||
% HTML + |
|||
% |
|||
csv_html_plus(L) --> |
|||
"<TABLE>\n", |
|||
csv_head(L, R), |
|||
csv_body(R), |
|||
"</TABLE>". |
|||
csv_head(L, R) --> |
|||
"<THEAD>\n", |
|||
csv_head_tr(L, R), |
|||
"</THEAD>\n". |
|||
csv_head_tr(L, R) --> |
|||
"<TR>\n", |
|||
csv_head_th(L, R), |
|||
"\n</TR>\n". |
|||
csv_head_th(L, S) --> |
|||
"<TH style='color:#000; background:#FF0;'>", |
|||
csv_head_th_in(L, S), |
|||
"</TH>". |
|||
csv_head_th_in([], []) --> []. |
|||
csv_head_th_in([10|L], L) --> []. |
|||
csv_head_th_in([44|L], S) --> |
|||
"</TH><TH style='color:#000; background:#FF0;'>", |
|||
csv_head_th_in(L,S). |
|||
csv_head_th_in([H|T], S) --> |
|||
[H], |
|||
csv_head_th_in(T, S). |
|||
csv_body(L) --> |
|||
"<TBODY>\n", |
|||
csv_body_tr(L), |
|||
"</TBODY>\n". |
|||
csv_body_tr([]) --> []. |
|||
csv_body_tr(L) --> |
|||
"<TR>\n", |
|||
csv_body_td(L, S), |
|||
"\n</TR>\n", |
|||
csv_body_tr(S). |
|||
csv_body_td(L, S) --> |
|||
"<TD style='color:#000; background:#8FF; border:1px #000 solid; padding:0.6em;'>", |
|||
csv_body_td_in(L, S), |
|||
"</TD>". |
|||
csv_body_td_in([], []) --> []. |
|||
csv_body_td_in([10|L], L) --> []. |
|||
csv_body_td_in([44|L], S) --> |
|||
"</TD><TD style='color:#000; background:#8FF; border:1px #000 solid; padding:0.6em;'>", |
|||
csv_body_td_in(L,S). |
|||
csv_body_td_in([H|T], S) --> |
|||
[H], |
|||
csv_body_td_in(T, S). |
|||
</lang> |
|||
Output : |
|||
<pre><TABLE> |
|||
<THEAD> |
|||
<TR> |
|||
<TH style='color:#000; background:#FF0;'>Character</TH><TH style='color:#000; background:#FF0;'>Speech</TH> |
|||
</TR> |
|||
</THEAD> |
|||
<TBODY> |
|||
<TR> |
|||
<TD style='color:#000; background:#8FF; border:1px #000 solid; padding:0.6em;'>The multitude</TD><TD style='color:#000; background:#8FF; border:1px #000 solid; padding:0.6em;'>The messiah! Show us the messiah!</TD> |
|||
</TR> |
|||
<TR> |
|||
<TD style='color:#000; background:#8FF; border:1px #000 solid; padding:0.6em;'>Brians mother</TD><TD style='color:#000; background:#8FF; border:1px #000 solid; padding:0.6em;'><angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry></TD> |
|||
</TR> |
|||
<TR> |
|||
<TD style='color:#000; background:#8FF; border:1px #000 solid; padding:0.6em;'>The multitude</TD><TD style='color:#000; background:#8FF; border:1px #000 solid; padding:0.6em;'>Who are you?</TD> |
|||
</TR> |
|||
<TR> |
|||
<TD style='color:#000; background:#8FF; border:1px #000 solid; padding:0.6em;'>Brians mother</TD><TD style='color:#000; background:#8FF; border:1px #000 solid; padding:0.6em;'>I'm his mother; that's who!</TD> |
|||
</TR> |
|||
<TR> |
|||
<TD style='color:#000; background:#8FF; border:1px #000 solid; padding:0.6em;'>The multitude</TD><TD style='color:#000; background:#8FF; border:1px #000 solid; padding:0.6em;'>Behold his mother! Behold his mother!</TD> |
|||
</TR> |
|||
</TBODY> |
|||
</TABLE> |
|||
</pre> |
|||
===HTML outputs rendered in firefox browser=== |
|||
[[File:Prolog_csv_to_html.png|frame||none]] |
|||
=={{header|Python}}== |
=={{header|Python}}== |