PACKET longrowDEFINES LONGROW ,:=,newrow,insert,replace,delete,CAT ,length, pos,binsearch,_:TYPE LONGROW =TEXT ;LET nil13bytes="�������������",nil4bytes= "����",nilbyte="�",niltext="";TEXT VAR teil2,platzhalter:="��";OP :=(LONGROW VAR r,LONGROW CONST s):CONCR (r):=CONCR (s)END OP :=;LONGROW PROC newrow: LONGROW VAR r;CONCR (r):=niltext;rEND PROC newrow;PROC insert(LONGROW VAR row ,INT CONST wo,was):IF wo>0THEN replace(platzhalter,1,was);INT VAR trennpos:=2 *wo-1;teil2:=subtext(CONCR (row),trennpos);CONCR (row):=subtext(CONCR (row),1 ,trennpos-1);CONCR (row)CAT platzhalter;CONCR (row)CAT teil2FI END PROC insert;PROC replace(LONGROW VAR row,INT CONST wo,INT CONST was):IF length(row )0THEN INT VAR trennpos:=2*wo+1;teil2:=subtext(CONCR (row),trennpos);CONCR (row):= subtext(CONCR (row),1,trennpos-3);CONCR (row)CAT teil2FI END PROC delete;OP CAT (LONGROW VAR row,INT CONST was):replace(platzhalter,1,was);CONCR (row) CAT platzhalterEND OP CAT ;INT OP _(LONGROW CONST row,INT CONST i):CONCR (row )ISUB iEND OP _;INT PROC pos(LONGROW CONST row,INT CONST wert):INT VAR start :=0;replace(platzhalter,1,wert);REP start:=pos(CONCR (row),platzhalter,start+ 1)UNTIL gefundenCOR stringendePER ;(start+1)DIV 2.gefunden:((startMOD 2)=1). stringende:start=0.END PROC pos;INT PROC length(LONGROW CONST row):length( CONCR (row))DIV 2END PROC length;PROC binsearch(LONGROW CONST ordnung,TEXT CONST muster,BOOL PROC (TEXT CONST ,INT CONST )kleiner,INT VAR indord): starteindenvorgegebenengrenzen;setzeaufdiemitte;WHILE nichtgefundenREP IF NOT kleineralsvergleichselementTHEN untererhinterdiemitteELSE obereristdiemitteFI ;IF nichtgefundenTHEN setzeaufdiemitteELSE setzeaufunterenFI PER ;gibordnungsindex.starteindenvorgegebenengrenzen:INT VAR m,u:=1,o:=length(ordnung)+1.setzeaufdiemitte:m:=(u+o)DIV 2.nichtgefunden: o>u.untererhinterdiemitte:u:=m+1.obereristdiemitte:o:=m.setzeaufunteren:m:=u. kleineralsvergleichselement:kleiner(muster,vergleichselement). vergleichselement:(ordnung_m).gibordnungsindex:indord:=m.END PROC binsearch; PROC stretch(LONGROW VAR row,INT CONST laenge):WHILE LENGTH CONCR (row)<= laenge-13REP CONCR (row)CAT nil13bytesPER ;WHILE LENGTH CONCR (row)<=laenge-4 REP CONCR (row)CAT nil4bytesPER ;WHILE LENGTH CONCR (row)