Base64 encode data: Difference between revisions

m
→‎{{header|Phix}}: added syntax colouring, marked first part p2js compatible and second part not
m (→‎{{header|Phix}}: added syntax colouring, marked first part p2js compatible and second part not)
Line 1,443:
 
=={{header|Phix}}==
For simplicity, the example from wp:
As this is a draft task, I've gone with the example from wp, for now. [[User:Petelomax|Pete Lomax]] ([[User talk:Petelomax|talk]]) 10:25, 11 September 2015 (UTC)
<!--<lang Phix>include builtins\base64.e(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
 
<span style="color: #008080;">include</span> <span style="color: #000000;">builtins</span><span style="color: #0000FF;">\</span><span style="color: #000000;">base64</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span>
string s = "Man is distinguished, not only by his reason, but by this singular passion from "&
"other animals, which is a lust of the mind, that by a perseverance of delight "&
<span style="color: #004080;">string</span> <span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"Man is distinguished, not only by his reason, but by this singular passion from "</span><span style="color: #0000FF;">&</span>
"in the continued and indefatigable generation of knowledge, exceeds the short "&
<span style="color: #008000;">"other animals, which is a lust of the mind, that by a perseverance of delight "</span><span style="color: #0000FF;">&</span>
"vehemence of any carnal pleasure."
<span style="color: #008000;">"in the continued and indefatigable generation of knowledge, exceeds the short "</span><span style="color: #0000FF;">&</span>
string e = encode_base64(s)
<span style="color: #008000;">"vehemence of any carnal pleasure."</span>
?e
<span style="color: #004080;">string</span> <span style="color: #000000;">e</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">encode_base64</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">)</span>
?decode_base64(e)</lang>
<span style="color: #0000FF;">?</span><span style="color: #000000;">e</span>
<span style="color: #0000FF;">?</span><span style="color: #7060A8;">decode_base64</span><span style="color: #0000FF;">(</span><span style="color: #000000;">e</span><span style="color: #0000FF;">)</span>
<!--</lang>-->
{{out}}
<pre>
Line 1,463 ⟶ 1,466:
This downloads, encodes, decodes, and verifies the icon:
{{libheader|Phix/libcurl}}
<!--<lang Phix>(phixonline)-->
<lang Phix>constant url = "https://rosettacode.org/favicon.ico",
<span style="color: #008080;">without</span> <span style="color: #008080;">js</span>
out = get_file_name(url)
<span style="color: #008080;">constant</span> <span style="color: #000000;">url</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"https://rosettacode.org/favicon.ico"</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">out</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">get_file_name</span><span style="color: #0000FF;">(</span><span style="color: #000000;">url</span><span style="color: #0000FF;">)</span>
printf(1, "\nattempting to download remote file %s to local file %s\n\n", {url,out})
 
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"\nattempting to download remote file %s to local file %s\n\n"</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">url</span><span style="color: #0000FF;">,</span><span style="color: #000000;">out</span><span style="color: #0000FF;">})</span>
include libcurl.e
 
<span style="color: #008080;">include</span> <span style="color: #000000;">libcurl</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span>
CURLcode res = curl_easy_get_file(url,"",out) -- (no proxy)
if res!=CURLE_OK then
<span style="color: #004080;">CURLcode</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">curl_easy_get_file</span><span style="color: #0000FF;">(</span><span style="color: #000000;">url</span><span style="color: #0000FF;">,</span><span style="color: #008000;">""</span><span style="color: #0000FF;">,</span><span style="color: #000000;">out</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- (no proxy)</span>
printf(1, "Error %d downloading file\n", res)
<span style="color: #008080;">if</span> <span style="color: #000000;">res</span><span style="color: #0000FF;">!=</span><span style="color: #004600;">CURLE_OK</span> <span style="color: #008080;">then</span>
else
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Error %d downloading file\n"</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">res</span><span style="color: #0000FF;">)</span>
printf(1, "file %s saved\n", {out})
<span style="color: #008080;">else</span>
end if
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"file %s saved\n"</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">out</span><span style="color: #0000FF;">})</span>
string raw = get_text(out,GT_WHOLE_FILE+GT_BINARY),
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
b64 = encode_base64(raw),
<span style="color: #004080;">string</span> <span style="color: #000000;">raw</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">get_text</span><span style="color: #0000FF;">(</span><span style="color: #000000;">out</span><span style="color: #0000FF;">,</span><span style="color: #004600;">GT_WHOLE_FILE</span><span style="color: #0000FF;">+</span><span style="color: #000000;">GT_BINARY</span><span style="color: #0000FF;">),</span>
chk = decode_base64(b64)
<span style="color: #000000;">b64</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">encode_base64</span><span style="color: #0000FF;">(</span><span style="color: #000000;">raw</span><span style="color: #0000FF;">),</span>
 
<span style="color: #000000;">chk</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">decode_base64</span><span style="color: #0000FF;">(</span><span style="color: #000000;">b64</span><span style="color: #0000FF;">)</span>
printf(1,"base 64: %s, same: %t\n",{shorten(b64,"chars"),chk==raw})</lang>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"base 64: %s, same: %t\n"</span><span style="color: #0000FF;">,{</span><span style="color: #7060A8;">shorten</span><span style="color: #0000FF;">(</span><span style="color: #000000;">b64</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"chars"</span><span style="color: #0000FF;">),</span><span style="color: #000000;">chk</span><span style="color: #0000FF;">==</span><span style="color: #000000;">raw</span><span style="color: #0000FF;">})</span>
<!--</lang>-->
{{out}}
<pre>
7,794

edits