Programmeren in REXX/Voorbeeldprogramma's: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
Kleine aanpassingen |
Verbeteringen aan priem.rex |
||
Regel 238:
parse source . . mezelf /* bepalen ons pad... */
priembestand=filespec('D',mezelf)||filespec('P',mezelf)'priem.lst'
tempbestand=priembestand".tmp" /* Tijdelijk werkbestand */
call SysFileDelete tempbestand /* Oude versie uitvagen */
if SysIsFile(priembestand) then do /* Als bestand is gevonden... */
call time 'Reset' /* starten chronometer */
say 'Stap 1 : We lezen' priembestand
rc=SysFileCopy(priembestand,tempbestand) /* reservecopie maken */
if rc\=0 then call exit rc,"Maken van reservecopie mislukt"
call stream priembestand,'C','OPEN READ' /* Open bestand */
oudepriem=charin(priembestand,1,chars(priembestand)) /* lezen */
Regel 258 ⟶ 262:
end
z=priem.0 ; start=priem.z+2 /* we beginnen na laast gekende */
say ' Lezen
format(time('R'),,3) 'seconden in beslag'▼
end
else do
Regel 268 ⟶ 271:
/* Stap 2: We kunnen nu nieuwe priemgetallen zoeken */
/********************************************************************/
nieuwe=0 /* teller van nieuwe priemgetallen */
do i=start by 2 /* lus vanaf start per 2 */
Regel 278 ⟶ 282:
if nieuwe=1000 then leave i /* We hebben er 1000 gevonden */
end i /* einde van lus i */
say '
/********************************************************************/
/* Stap 3: Wegschrijven van de nieuwe priemgetallen in priem.lst */
/********************************************************************/
say 'Stap 3 : We schrijven de resultaten weg'
call stream priembestand,'C','OPEN WRITE APPEND' /* Openen bestand */
veldbreedte=min(length(priem.z),digits()+1)+1 /* afdrukbreedte */
Regel 292 ⟶ 296:
call lineout priembestand,lijn /* Wegschrijven regel */
end i
if rc="READY:" then do
▲say 'Wegschrijven van nieuwe priemgetallen duurde',
call SysFileDelete tempbestand
call exit 0,'
end; else call exit 28,'Wegschrijven van priemgetallen mislukt',,
'Foutcode was='rc,,
'Oude versie is bewaard in' tempbestand
/**************************** subroutines ***************************/
|