Starting a web browser: Difference between revisions
m
→{{header|Wren}}: Minor tidy
(→{{header|Wren}}: Removed a duplicated line from the C code.) |
m (→{{header|Wren}}: Minor tidy) |
||
(7 intermediate revisions by 6 users not shown) | |||
Line 8:
=={{header|EchoLisp}}==
Since we are already in a browser window, the browser is started. '''print-hatml''' sends an html string to the standard output area. The table is styled with the "htable" css class, which is included in EchoLisp.
<
;; table from "Separate_the_house_number_from_the_street_name"
;;
(print-html (table->html adresses))
</syntaxhighlight>
{{out}}
Line 122:
=={{header|Go}}==
This uses the same format and color scheme for the table as the Raku entry.
<
import (
Line 249:
err = os.Remove(fileName)
check(err)
}</
{{out}}
Line 255:
Similar to the Raku entry.
</pre>
=={{header|J}}==
Here, we assume that <code>browser</code> refers to a browser in a format which is usable by a command shell, and <code>din5008</code> and <code>sampledata</code> have been defined according to the [[Separate_the_house_number_from_the_street_name#J|J house number street name]] task entry:
<syntaxhighlight lang="j"> wrap=: {{'<',m,'>',y,'</',(;{.;:m),'>' }}(L:0)("1)
'table.htm'fwrite~'<style>tr:nth-child(even){color:blue}</style>','table' wrap ,'tr' wrap ;"1 'td' wrap din5008"1 sampledata
1660
launch browser,' table.htm'</syntaxhighlight>
(Here, 1660 was the length of the generated file.)
=={{header|Julia}}==
<
function testbrowsertable(addresstext)
Line 324 ⟶ 335:
testbrowsertable(adressen)
</syntaxhighlight>
=={{header|Nim}}==
Based on Phix solution. Using same colors as Scala program.
<
func separateHouseNumber(address: string): tuple[street, house: string] =
Line 415 ⟶ 426:
discard execShellCmd("firefox test.html")
os.sleep(5000)
removeFile("test.html")</
{{out}}
Line 423 ⟶ 434:
Borrowing code from the [[Separate_the_house_number_from_the_street_name|Separate the house number from the street name]] task.
{{trans|Raku}}
<
my @addresses = (
Line 498 ⟶ 509:
# wait for a bit to give browser time to load before destroying temp file
sleep 5;
</syntaxhighlight>
{{out}}
<table border="2"> <tr bgcolor="#02ccfe"><th>Address</th><th>Street</th><th>House Number</th>
Line 536 ⟶ 547:
=={{header|Phix}}==
<!--<syntaxhighlight lang="phix">(notonline)-->
<span style="color: #008080;">without</span> <span style="color: #008080;">js</span> <span style="color: #000080;font-style:italic;">-- (file i/o, system)</span>
<span style="color: #008080;">constant</span> <span style="color: #000000;">addresses</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">"Plataanstraat 5"</span><span style="color: #0000FF;">,</span>
<span style="color: #008000;">"Dr. J. Straat 12
<span style="
<span style="
<span style="
<span style="
<span style="
<span style="
<span style="color: #008000;">"1e Kruisweg 36"</span><span style="
<span style="
<span style="
<span style="
<span style="
<span style="
<span style="
<span style="color: #008000;">"Nieuwe gracht
<span style="color: #008000;">"Nieuwe gracht
<span style="color: #008000;">"Nieuwe gracht
<span style="color: #008000;">"Nieuwe gracht 20zw/3"</span><span style="
<span style="color: #008000;">"Nieuwe gracht 20 zw/4"</span><span style="
<span style="color: #008000;">"Bahnhofstr. 4"</span><span style="
<span style="color: #008000;">"Wertstr. 10"</span><span style="
<span style="color: #008000;">"Lindenhof 1"</span><span style="
<span style="
<span style="
<span style="color: #008000;">"Harthauer Weg 2"</span><span style="
<span style="color: #008000;">"Mainaustr. 49"</span><span style="
<span style="
<span style="color: #008000;">"Marktplatz 31"</span><span style="
<span style="color: #008000;">"Schmidener Weg 3"</span><span style="color: #0000FF;">,</span>
<span style="color: #008000;">"Karl-Weysser-Str. 6"</span><span style="color: #0000FF;">}</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">isDigit</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">ch</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">return</span> <span style="color: #000000;">ch</span><span style="color: #0000FF;">>=</span><span style="color: #008000;">'0'</span> <span style="color: #008080;">and</span> <span style="color: #000000;">ch</span><span style="color: #0000FF;"><=</span><span style="color: #008000;">'9'</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">separateHouseNumber</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">address</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">addresses</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">parts</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">split</span><span style="color: #0000FF;">(</span><span style="color: #000000;">address</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">street</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">house</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">h</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span>
<span style="color: #008080;">if</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">parts</span><span style="color: #0000FF;">)></span><span style="color: #000000;">1</span> <span style="color: #008080;">then</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">last</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">parts</span><span style="color: #0000FF;">[$]</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">isDigit</span><span style="color: #0000FF;">(</span><span style="color: #000000;">last</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">])</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">h</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">penult</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">parts</span><span style="color: #0000FF;">[$-</span><span style="color: #000000;">1</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;">parts</span><span style="color: #0000FF;">)></span><span style="color: #000000;">2</span>
<span style="color: #008080;">and</span> <span style="color: #000000;">isDigit</span><span style="color: #0000FF;">(</span><span style="color: #000000;">penult</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">])</span>
<span style="color: #008080;">and</span> <span style="color: #7060A8;">match</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"194"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">penult</span><span style="color: #0000FF;">)!=</span><span style="color: #000000;">1</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">h</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">2</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">elsif</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">parts</span><span style="color: #0000FF;">)></span><span style="color: #000000;">2</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">h</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">2</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">h</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">street</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #000000;">parts</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">..$-</span><span style="color: #000000;">h</span><span style="color: #0000FF;">])</span>
<span style="color: #000000;">house</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #000000;">parts</span><span style="color: #0000FF;">[$-</span><span style="color: #000000;">h</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">..$])</span>
<span style="color: #008080;">else</span>
<span style="color: #000000;">street</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #000000;">parts</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">house</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"(none)"</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">colour</span> <span style="color: #0000FF;">=</span> <span style="color: #008080;">iff</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">mod</span><span style="color: #0000FF;">(</span><span style="color: #000000;">i</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">)=</span><span style="color: #000000;">0</span><span style="color: #0000FF;">?</span><span style="color: #008000;">"#d7fffe"</span><span style="color: #0000FF;">:</span><span style="color: #008000;">"#9dbcd4"</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">return</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">colour</span><span style="color: #0000FF;">,</span><span style="color: #000000;">address</span><span style="color: #0000FF;">,</span><span style="color: #000000;">street</span><span style="color: #0000FF;">,</span><span style="color: #000000;">house</span><span style="color: #0000FF;">}</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">constant</span> <span style="color: #000000;">html_hdr</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
<html>
<head>
<title>Rosetta Code - Start a Web Browser</title>
<meta charset="UTF-8">
</head>
<body bgcolor="#d8dcd6">
<p align="center">
<font face="Arial, sans-serif" size="5">Split the house number from the street name</font>
</p>
<p align="center">
<table border="2"> <tr bgcolor="#02ccfe">
<th>Address</th><th>Street</th><th>House Number</th>
"""</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">html_line</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
<tr bgcolor=%s><td>%s</td><td>%s</td><td>%s</td></tr>
"""</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">html_ftr</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
</table>
</p>
</body>
</html>
"""</span>
<span style="color: #008080;">procedure</span> <span style="color: #000000;">main</span><span style="color: #0000FF;">()</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">fn</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">open</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"test.html"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"w"</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">fn</span><span style="color: #0000FF;">,</span><span style="color: #000000;">html_hdr</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;">addresses</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;">fn</span><span style="color: #0000FF;">,</span><span style="color: #000000;">html_line</span><span style="color: #0000FF;">,</span><span style="color: #000000;">separateHouseNumber</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: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">fn</span><span style="color: #0000FF;">,</span><span style="color: #000000;">html_ftr</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">close</span><span style="color: #0000FF;">(</span><span style="color: #000000;">fn</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">system</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"test.html"</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
<span style="color: #000000;">main</span><span style="color: #0000FF;">()</span>
<!--</syntaxhighlight>-->
output as perl
=={{header|Racket}}==
<
#lang at-exp racket
Line 662 ⟶ 676:
@table{@render-table}}}
}
</syntaxhighlight>
=={{header|Raku}}==
Line 669 ⟶ 683:
Uses the code from the [[Separate_the_house_number_from_the_street_name|Separate the house number from the street name]] task almost verbatim. Included here to make a complete, runnable example.
<syntaxhighlight lang="raku"
my $addresses = qq :to /END/;
Line 767 ⟶ 781:
# wait for a bit to give browser time to load before destroying temp file
sleep 5;
</syntaxhighlight>
{{out}} Will start the default browser (or open a new tab/window in a running one) and display this table.
<table border="2"> <tr bgcolor="#02ccfe"><th>Address</th><th>Street</th><th>House Number</th>
Line 808 ⟶ 822:
<!-- ==={{libheader|Scala}}=== -->
Uses nothing but the Standard Library:
<
import java.io.{IOException, PrintWriter}
import java.net.{URI, ServerSocket}
Line 942 ⟶ 956:
do print("Do you want to shutdown this server? <Y(es)/N>: ") while (!scala.io.StdIn.readBoolean)
sys.exit()
}</
{{out}}
<font face="Arial, sans-serif" size="5">Split the house number from the street name</font>
Line 949 ⟶ 963:
=={{header|Tcl}}==
{{works with|Tcl|8.6}}<!--required for [file tempfile]-->
<
# This is identical to the address task. Skip forward to the next section...
Line 1,027 ⟶ 1,041:
} else {
exec xdg_open $filename
}</
{{out}}
<!-- Strictly, this is just the contents of the <body> inside a <div>… --><div style="margin-left: 50px">
Line 1,036 ⟶ 1,050:
{{libheader|Wren-pattern}}
{{libheader|Wren-fmt}}
{{libheader|Wren-
An embedded program so we can ask the C host to open the browser for us after we've created the html file.
The Wren code is based in part on the Nim example and uses the same color scheme.
<
import "./pattern" for Pattern
import "./fmt" for Fmt
import "./
foreign class File {
Line 1,162 ⟶ 1,176:
File.flushAll() // flush all streams
C.sleep(5) // wait five seconds
File.remove("test.html") // remove the file</
<br>
We now embed this in the following C program, compile and run it.
<
#include <stdio.h>
Line 1,300 ⟶ 1,314:
WrenVM* vm = wrenNewVM(&config);
const char* module = "main";
const char* fileName = "
char *script = readFile(fileName);
WrenInterpretResult result = wrenInterpret(vm, module, script);
Line 1,316 ⟶ 1,330:
free(script);
return 0;
}</
{{out}}
Line 1,322 ⟶ 1,336:
Same as Nim.
</pre>
{{omit from|EasyLang}}
|