Text processing/Max licenses in use: Difference between revisions
Content added Content deleted
(Text processing/Max licenses in use en FreeBASIC) |
m (→{{header|Phix}}: syntax coloured, made p2js compatible) |
||
Line 1,813: | Line 1,813: | ||
=={{header|Phix}}== |
=={{header|Phix}}== |
||
<!--<lang Phix>(phixonline)--> |
|||
Modified copy of [[[[Text_processing/Max_licenses_in_use#Euphoria|Euphoria]]]] |
|||
<span style="color: #000080;font-style:italic;">-- demo\rosetta\Max_licences.exw</span> |
|||
⚫ | |||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span> <span style="color: #000080;font-style:italic;">-- (include version/first of next three lines only)</span> |
|||
integer maxout = 0, jobnumber |
|||
<span style="color: #008080;">include</span> <span style="color: #000000;">mlijobs</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span> <span style="color: #000080;font-style:italic;">-- global constant lines, or: |
|||
sequence jobs = {}, maxtime, scanres |
|||
--assert(write_lines("mlijobs.txt",lines)!=-1) -- first run, or get from link above, then: |
|||
string inout, jobtime |
|||
⚫ | |||
object line |
|||
while 1 do |
|||
line = gets(fn) |
|||
if atom(line) then exit end if |
|||
scanres = scanf(line,"License %s @ %s for job %d\n") |
|||
if length(scanres)!=1 then |
|||
printf(1,"error scanning line: %s\n",{line}) |
|||
{} = wait_key() |
|||
abort(0) |
|||
end if |
|||
{{inout,jobtime,jobnumber}} = scanres |
|||
if inout="OUT" then |
|||
jobs &= jobnumber |
|||
if length(jobs)>maxout then |
|||
maxout = length(jobs) |
|||
maxtime = {jobtime} |
|||
elsif length(jobs)=maxout then |
|||
maxtime = append(maxtime, jobtime) |
|||
end if |
|||
else |
|||
jobs[find(jobnumber,jobs)] = jobs[$] |
|||
jobs = jobs[1..$-1] |
|||
end if |
|||
end while |
|||
close(fn) |
|||
<span style="color: #004080;">integer</span> <span style="color: #000000;">maxout</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">jobnumber</span> |
|||
printf(1, "Maximum simultaneous license use is %d at the following times:\n", maxout) |
|||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">jobs</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{},</span> <span style="color: #000000;">maxtime</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">scanres</span> |
|||
for i = 1 to length(maxtime) do |
|||
<span style="color: #004080;">string</span> <span style="color: #000000;">inout</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">jobtime</span> |
|||
printf(1, "%s\n", {maxtime[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;">lines</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span> |
|||
⚫ | |||
<span style="color: #004080;">string</span> <span style="color: #000000;">line</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">lines</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span> |
|||
<span style="color: #000000;">scanres</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">scanf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">line</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"License %s @ %s for job %d"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">scanres</span><span style="color: #0000FF;">)!=</span><span style="color: #000000;">1</span> <span style="color: #008080;">then</span> |
|||
<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 scanning line: %s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">line</span><span style="color: #0000FF;">})</span> |
|||
<span style="color: #0000FF;">{}</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">wait_key</span><span style="color: #0000FF;">()</span> |
|||
<span style="color: #7060A8;">abort</span><span style="color: #0000FF;">(</span><span style="color: #000000;">0</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #0000FF;">{{</span><span style="color: #000000;">inout</span><span style="color: #0000FF;">,</span><span style="color: #000000;">jobtime</span><span style="color: #0000FF;">,</span><span style="color: #000000;">jobnumber</span><span style="color: #0000FF;">}}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">scanres</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">inout</span><span style="color: #0000FF;">=</span><span style="color: #008000;">"OUT"</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #000000;">jobs</span> <span style="color: #0000FF;">&=</span> <span style="color: #000000;">jobnumber</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">jobs</span><span style="color: #0000FF;">)></span><span style="color: #000000;">maxout</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #000000;">maxout</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">jobs</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #000000;">maxtime</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">jobtime</span><span style="color: #0000FF;">}</span> |
|||
<span style="color: #008080;">elsif</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">jobs</span><span style="color: #0000FF;">)=</span><span style="color: #000000;">maxout</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #000000;">maxtime</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">append</span><span style="color: #0000FF;">(</span><span style="color: #000000;">maxtime</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">jobtime</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #008080;">else</span> |
|||
<span style="color: #000000;">jobs</span><span style="color: #0000FF;">[</span><span style="color: #7060A8;">find</span><span style="color: #0000FF;">(</span><span style="color: #000000;">jobnumber</span><span style="color: #0000FF;">,</span><span style="color: #000000;">jobs</span><span style="color: #0000FF;">)]</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">jobs</span><span style="color: #0000FF;">[$]</span> |
|||
<span style="color: #000000;">jobs</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">jobs</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">..$-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span> |
|||
<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;">"Maximum simultaneous license use is %d at the following times:\n"</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">maxout</span><span style="color: #0000FF;">)</span> |
|||
<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;">maxtime</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span> |
|||
<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\n"</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">maxtime</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> |
|||
<span style="color: #0000FF;">?</span><span style="color: #008000;">"done"</span> |
|||
<span style="color: #0000FF;">{}</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">wait_key</span><span style="color: #0000FF;">()</span> |
|||
⚫ | |||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 1,854: | Line 1,860: | ||
2008/10/03_08:40:40 |
2008/10/03_08:40:40 |
||
</pre> |
</pre> |
||
<small>Note the version of mlijobs.e shipped in the distribution is cropped at 10 lines (not all 457K) and will need reconstructing from the above download to get matching results</small> |
|||
=={{header|PHP}}== |
=={{header|PHP}}== |