|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3072 (0xc00)
Types: TextFile
Names: »nrstringtx«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦80900d603⟧ »giprocfile«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦80900d603⟧ »giprocfile«
└─⟦this⟧
; nr_string_tx * page 1 27 09 77, 11.35;
; nrstring
; ********
if listing.yes
char 10 12 10
nrstring = set 1
nrstring = algol
external
integer procedure nrstring ( tp, text_ant, læst_text, text);
____________________________________________________________
value text_ant;
integer text_ant, tp;
string læst_text, text;
comment
Parameteren text evalueres med tp:= text_ant
step -1 until 1 (Jensens device) og der søges
en match mellem læst_text og værdierne
af text. Genkendes læst_text ikke i text er
procedurens værdi 1, ellers den tilsvarende
værdi af tp+1.
Eventuelle store bogstaver i den læste text
erstattes ved sammenligningen med små.
(bog staverne i værdierne bør altsaa
være smaa. Paa denne maade kan egenavne i
input staves med stort eller smaat).
Der benyttes saa mange tegn af den læste
text som den aktuelle værdi af text har.
I den aktuelle version dog kun 1-6 . Er dette
ikke opfyldt afbrydes kørslen med udskriften
<:longtext:> eller <:shorttxt:> samt den
tilsvarende værdi af tp (6 tegn er
tilladt hvis det er tale om en
'text portion', ikke hvis det er en
'long text string', jft algol5 afs 3.6.3);
begin
long læst, sam_text;
integer skift, i, tegn;
læst:=long læsttext;
\f
comment nr_string_tx * page 2 27 09 77, 11.35
0 1 2 3 4 5 6 7 8 9 ;
for skift:= -40 step 8 until 0 do
begin
comment store til små bogstaver;
tegn:= læst shift skift extract 8;
if tegn>64 and tegn<94 then
læst:= læst shift (skift-8) shift 8 add (tegn+32)
shift (-skift) +
(læst shift (48+skift) shift (-48-skift));
if tegn=0 then skift:=0;
end for skift:= -40;
i:= 1;
for tp:= text_ant step -1 until 1 do
begin
sam_text:= long text;
comment evaluer text netop 1 gang pr
gennemløb for at undgå dublering
af eventuelle sideeffekter;
if sam_text shift (-23) extract 1 = 1 then
system(9)run_time_alarm:(tp, <:<10>longtext:>);
for skift:= 8, skift-8 while
sam_text shift skift extract 8 = 0 do;
if skift<-40 then
system(9, tp, <:<10>shorttxt:>);
if sam_text = læst shift skift shift (-skift) then
begin
comment match fundet,
stop søgning;
i:= tp+1;
tp:= 1;
end if sam_text;
end for tp:= text_ant;
nrstring:= i;
end of nrstring;
end
if warning.yes
(mode 0.yes
message nrstring not ok
lookup nrstring)
▶EOF◀