mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-17 16:38:33 +00:00
version 0.7.6
This commit is contained in:
7
examples/hallo.nim
Normal file
7
examples/hallo.nim
Normal file
@@ -0,0 +1,7 @@
|
||||
# Hallo world program
|
||||
|
||||
import strutils
|
||||
|
||||
echo($(parseFloat("0.5")* toFloat(5000) / toFloat(parseInt("5000"))))
|
||||
|
||||
echo("Hallo world!")
|
||||
58
examples/htmlrefs.nim
Normal file
58
examples/htmlrefs.nim
Normal file
@@ -0,0 +1,58 @@
|
||||
# Example program to show the new parsexml module
|
||||
# This program reads an HTML file and writes all its used links to stdout.
|
||||
# Errors and whitespace are ignored.
|
||||
# (c) 2009 Andreas Rumpf
|
||||
|
||||
import os, streams, parsexml, strutils
|
||||
|
||||
proc `=?=` (a, b: string): bool =
|
||||
# little trick: define our own comparator that ignores case
|
||||
return cmpIgnoreCase(a, b) == 0
|
||||
|
||||
if paramCount() < 1:
|
||||
quit("Usage: htmlrefs filename[.html]")
|
||||
|
||||
var links = 0 # count the number of links
|
||||
var filename = appendFileExt(ParamStr(1), "html")
|
||||
var s = newFileStream(filename, fmRead)
|
||||
if s == nil: quit("cannot open the file" & filename)
|
||||
var x: TXmlParser
|
||||
open(x, s, filename)
|
||||
next(x) # get first event
|
||||
block mainLoop:
|
||||
while true:
|
||||
case x.kind
|
||||
of xmlElementOpen:
|
||||
# the <a href = "xyz"> tag we are interested in always has an attribute,
|
||||
# thus we search for ``xmlElementOpen`` and not for ``xmlElementStart``
|
||||
if x.elementName =?= "a":
|
||||
x.next()
|
||||
if x.kind == xmlAttribute:
|
||||
if x.attrKey =?= "href":
|
||||
var link = x.attrValue
|
||||
inc(links)
|
||||
# skip until we have an ``xmlElementClose`` event
|
||||
while true:
|
||||
x.next()
|
||||
case x.kind
|
||||
of xmlEof: break mainLoop
|
||||
of xmlElementClose: break
|
||||
else: nil
|
||||
x.next() # skip ``xmlElementClose``
|
||||
# now we have the description for the ``a`` element
|
||||
var desc = ""
|
||||
while x.kind == xmlCharData:
|
||||
desc.add(x.charData)
|
||||
x.next()
|
||||
Echo(desc & ": " & link)
|
||||
else:
|
||||
x.next()
|
||||
of xmlEof: break # end of file reached
|
||||
of xmlError:
|
||||
Echo(errorMsg(x))
|
||||
x.next()
|
||||
else: x.next() # skip other events
|
||||
|
||||
echo($links & " link(s) found!")
|
||||
x.close()
|
||||
|
||||
37
examples/htmltitle.nim
Normal file
37
examples/htmltitle.nim
Normal file
@@ -0,0 +1,37 @@
|
||||
# Example program to show the new parsexml module
|
||||
# This program reads an HTML file and writes its title to stdout.
|
||||
# Errors and whitespace are ignored.
|
||||
# (c) 2009 Andreas Rumpf
|
||||
|
||||
import os, streams, parsexml, strutils
|
||||
|
||||
if paramCount() < 1:
|
||||
quit("Usage: htmltitle filename[.html]")
|
||||
|
||||
var filename = appendFileExt(ParamStr(1), "html")
|
||||
var s = newFileStream(filename, fmRead)
|
||||
if s == nil: quit("cannot open the file" & filename)
|
||||
var x: TXmlParser
|
||||
open(x, s, filename)
|
||||
while true:
|
||||
x.next()
|
||||
case x.kind
|
||||
of xmlElementStart:
|
||||
if cmpIgnoreCase(x.elementName, "title") == 0:
|
||||
var title = ""
|
||||
x.next() # skip "<title>"
|
||||
while x.kind == xmlCharData:
|
||||
title.add(x.charData)
|
||||
x.next()
|
||||
if x.kind == xmlElementEnd and cmpIgnoreCase(x.elementName, "title") == 0:
|
||||
Echo("Title: " & title)
|
||||
quit(0) # Success!
|
||||
else:
|
||||
echo(x.errorMsgExpected("/title"))
|
||||
|
||||
of xmlEof: break # end of file reached
|
||||
else: nil # ignore other events
|
||||
|
||||
quit("Could not determine title!")
|
||||
x.close()
|
||||
|
||||
5
examples/readme.txt
Normal file
5
examples/readme.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
In this directory you will find several examples for how to use the Nimrod
|
||||
library.
|
||||
|
||||
Copyright (c) 2004-2009 Andreas Rumpf.
|
||||
All rights reserved.
|
||||
Reference in New Issue
Block a user