Programmeren in REXX/Voorbeeldprogramma's: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
GuyDC (overleg | bijdragen)
Eliminatie van minder nuttige voorbeelden
GuyDC (overleg | bijdragen)
Toevoegen woorden tellen
Regel 131:
exit
</pre> }}
==Woorden tellen in een tekstbestand==
 
{{Code| | Taal= REXX | Titel= woordteller.rex | Code= <pre>
/* Programma dat de frequentie van woorden in een txt */
/* bestand zal tellen. */
parse arg bestand
w.=0 /* Initialisatie van woordteller */
wrdn="" /* verschillende woorden */
if SysIsFile(bestand) then do
call stream bestand,'Command','OPEN READ' /* Open */
inhoud=charin(bestand,1,chars(bestand)) /* Lees */
call stream bestand,'Command','CLOSE' /* Sluit */
inhoud=strip(inhoud,'Trailing','1A'x) /* Strip eof */
startp=1 /* start voor zoeken CrLf */
do i=1 by 1 /* continu lus... */
p=pos('0D0A'x,inhoud,startp) /* pos van CrLf */
if p>0 then
call verwerklijn substr(inhoud,startp,p-startp)
else do /* verwerk laatste lijn */
call verwerklijn substr(inhoud,startp)
leave /* alles verwerkt */
end
startp=p+2 /* volgende start na de CrLf */
end
say 'Er zijn' words(wrdn) 'verschillende woorden.'
say 'Daarvan komen volgende meermaals voor:'
do while wrdn<>'' /* voor alle gevonden woorden */
parse var wrdn woord wrdn
if w.woord>1 then say format(w.woord,3,0) 'x' woord
end
call exit 0,'Einde verwerking'
end
else call exit 28,'Het bestand "'bestand'" bestaat niet'
/******************** Subroutines *********************/
VERWERKLIJN: procedure expose w. wrdn /*Woorden tellen*/
parse upper arg lijn
if length(lijn)=0 then return
/* we verwijderen eerst de leestekens en tab karakter*/
lijn=translate(lijn,"","!""'.,;:/\=+-()[]{}%$€#*"||"09"x)
do while lijn<>""
parse var lijn woord lijn /* lijn opeten */
w.woord=w.woord+1 /* teller van woord +1 */
if w.woord=1 then /* nieuw woord gevonden */
wrdn=wrdn woord
end
return
EXIT: /* Algemene exit-routine */
parse source . oproepvorm myname
a=lastpos('\',myname)
parse var myname +(a) myname '.'
do i=2 to arg()
say myname':' arg(i)
end
if oproepvorm='COMMAND' then
if arg(1)<>"" & arg(1)<>0 then say myname': Foutcode='arg(1)
exit arg(1)
</pre>}}
{{sub}}
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.