38 lines
935 B
Plaintext
38 lines
935 B
Plaintext
constant iBUFSIZE 500
|
|
|
|
function main(string filename)
|
|
fsfileinputstream fpi
|
|
integer e, i, aval, zval
|
|
string s, buf, c
|
|
set chars
|
|
|
|
e = 0
|
|
fpi =@ fsfileinputstream.new(filename, error=e)
|
|
if fpi =@= .nul
|
|
s = "Error, file """ + filename + """ not found{d}{a}"
|
|
else
|
|
chars =@ set.new()
|
|
aval = .charval("a")
|
|
zval = .charval("z")
|
|
buf = .lcase(fpi.getstring(iBUFSIZE, 1))
|
|
while not fpi.endofdata and buf > ""
|
|
i = 1
|
|
while i <= .len(buf)
|
|
c = .substr(buf, i, 1)
|
|
if .charval(c) >= aval and .charval(c) <= zval
|
|
chars.addvalue(c)
|
|
end if
|
|
i = i + 1
|
|
end while
|
|
buf = .lcase(fpi.getstring(iBUFSIZE, 1))
|
|
end while
|
|
|
|
s = "Character counts for """ + filename + """{d}{a}"
|
|
i = 1
|
|
while i <= chars.count()
|
|
s = s + chars[i] + ": " + .tostr(chars.valuecount(chars[i]), 10) + "{d}{a}"
|
|
i = i + 1
|
|
end while
|
|
end if
|
|
end function s
|