Extract file extension: Difference between revisions

m
→‎{{header|Phix}}: added syntax colouring, marked p2js compatible
(Add CLU)
m (→‎{{header|Phix}}: added syntax colouring, marked p2js compatible)
Line 1,948:
 
=={{header|Phix}}==
<!--<lang Phix>function getExtension(string filenamephixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
for i=length(filename) to 1 by -1 do
<span style="color: #008080;">function</span> <span style="color: #000000;">getExtension</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">filename</span><span style="color: #0000FF;">)</span>
integer ch = filename[i]
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">filename</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">to</span> <span style="color: #000000;">1</span> <span style="color: #008080;">by</span> <span style="color: #0000FF;">-</span><span style="color: #000000;">1</span> <span style="color: #008080;">do</span>
if ch='.' then return filename[i..$] end if
<span style="color: #004080;">integer</span> <span style="color: #000000;">ch</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">filename</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span>
if find(ch,"\\/_") then exit end if
<span style="color: #008080;">if</span> <span style="color: #000000;">ch</span><span style="color: #0000FF;">=</span><span style="color: #008000;">'.'</span> <span style="color: #008080;">then</span> <span style="color: #008080;">return</span> <span style="color: #000000;">filename</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">..$]</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
end for
<span style="color: #008080;">if</span> <span style="color: #7060A8;">find</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ch</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"\\/_"</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span> <span style="color: #008080;">exit</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
return ""
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
end function
<span style="color: #008080;">return</span> <span style="color: #008000;">""</span>
 
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
constant tests = {"mywebsite.com/picture/image.png",
"http://mywebsite.com/picture/image.png",
<span style="color: #008080;">constant</span> <span style="color: #000000;">tests</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">"mywebsite.com/picture/image.png"</span><span style="color: #0000FF;">,</span>
"myuniquefile.longextension",
<span style="color: #008000;">"http://mywebsite.com/picture/image.png"</span><span style="color: #0000FF;">,</span>
"IAmAFileWithoutExtension",
<span style="color: #008000;">"myuniquefile.longextension"</span><span style="color: #0000FF;">,</span>
"/path/to.my/file",
<span style="color: #008000;">"IAmAFileWithoutExtension"</span><span style="color: #0000FF;">,</span>
"file.odd_one",
<span style="httpcolor: #008000;">"/path/exampleto.commy/download.tar.gzfile"</span><span style="color: #0000FF;">,</span>
<span style="CharacterModelcolor: #008000;">"file.3DSodd_one"</span><span style="color: #0000FF;">,</span>
<span style="color: #008000;">"http://example.com/download.tar.gz"</span><span style="color: #0000FF;">,</span>
".desktop",
<span style="color: #008000;">"CharacterModel.3DS"</span><span style="color: #0000FF;">,</span>
"document",
<span style="color: #008000;">".desktop"</span><span style="color: #0000FF;">,</span>
"document.txt_backup",
<span style="color: #008000;">"document"</etc/pam.d/loginspan><span style="}color: #0000FF;">,</span>
<span style="color: #008000;">"document.txt_backup"</span><span style="color: #0000FF;">,</span>
for i=1 to length(tests) do
<span style="color: #008000;">"/etc/pam.d/login"</span><span style="color: #0000FF;">}</span>
printf(1,"%s ==> %s\n",{tests[i],getExtension(tests[i])})
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">tests</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
end for</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;">"%s ==&gt; %s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">tests</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">],</span><span style="color: #000000;">getExtension</span><span style="color: #0000FF;">(</span><span style="color: #000000;">tests</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">])})</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
end for<!--</lang>-->
{{out}}
<pre>
7,820

edits