|
DataMuseum.dkPresents historical artifacts from the history of: RC3500 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC3500 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3840 (0xf00) Types: TextFileVerbose Names: »partwordtxt«
└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system └─⟦72244f0ef⟧ └─⟦this⟧ »partwordtxt«
job j 1 time 11 0 perm disc1 1000 10 message start compile partword partword=set 1 disc1 scope user partword partword=algol begin <****************************************************** * * this program assists in inserting hyphenation characters * (or partition marks if you will) into long words * in a textfile. * * call: * <outfile> = partword in.<infile> max.<maxlength> * * default maxlength is 10 * * the program must be run online * * programmed april 1981 by stb * ********************************************************> integer array word(1:100); integer wordlength,i,max; boolean finished; zone zout,zin(128,1,stderror); real array inname,outname,errorname(1:2); boolean array test(1:1); \f procedure partword; begin <* writes the word on the screen and reads partition possibilities *> integer array word1(1:100); integer char,i,i1; outchar(out,'nl'); for i:=1 step 1 until wordlength do outchar(out,word(i)); outchar(out,'nl'); setposition(out,0,0); i:=1; i1:=1; repeat readchar(in,char); if char='_' then begin <* part here *> word1(i1):='_'; i1:=i1+1; end; word1(i1):=word(i); i1:=i1+1; i:=i+1; until char='nl'; for i:=i step 1 until wordlength do begin word1(i1):=word(i); i1:=i1+1; end; wordlength:=i1-1; <* now copy the word back to 'word' and check-write it on the screen *> for i:=1 step 1 until wordlength do begin word(i):=word1(i); outchar(out,word(i)); end; outchar(out,'nl'); setposition(out,0,0); end part word; \f procedure printword(word,length); value length; integer length; integer array word; begin <* prints the word *> integer i; for i:=1 step 1 until length do outchar(zout,word(i)); end; \f procedure readword; begin <* copies chars until a char with value>=32. then the word is collected in the word-array *> integer char,class,i; repeat class:=readchar(zin,char); if char='em' then finished:=true ; if char<=32 then outchar(zout,char); until finished or (char>32); if -, finished then begin <* collect the word *> i:=2; word(1):=char; repeat class:=readchar(zin,char); word(i):=char; i:=i+1; until (char<=32); repeatchar(zin); wordlength:=i-2; end not finished; end read word; \f <******************* main program *************************> finished:=false; textopen(zout); getstdfp(outname,inname,errorname,test); i:=1; open(zin,4,string inname(increase(i)),0); max:=l{sfptal(<:max:>); if max<=0 then max:=10; write(out,<: orddelingstegnsinds{ttelseshj{lpeprogram: N}r programmet skriver et ord, der er for langt, skal du p} linjen neden under ordet markere orddelingsmulighederne ved hj{lp af tegnet "_" umiddelbart efter hver orddelingsmulighed. Fx: orddelingsmulighed _ _ Tast 'SPACE' mellem "_" og 'RETURN' efter den sidste. :>); setposition(out,0,0); repeat readword; if wordlength>max then partword; printword(word,wordlength); until finished; textclose(zout,true); close(zin,true); end finis «eof»