_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

STRINGS

FILE INFORMATION

FILENAME(S): STRINGS

FILE TYPE(S): SEQ

FILE SIZE: 5.2K

FIRST SEEN: 2025-12-02 23:47:34

APPEARS ON: 1 disk(s)

FILE HASH

cb13cd5a8421777d4edbd78644aabb67f64d2f86a0ea9238a3d9d88cb59fe4c2

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
SPIELE 42 STRINGS SEQ swasti, flohmarkt 27 12 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 70 72 6F 67 72 61 6D 20  73 74 72 69 6E 67 73 20  |program strings |
00000010: 28 69 6E 70 75 74 2C 6F  75 74 70 75 74 29 3B 0D  |(input,output);.|
00000020: 28 2A 2A 29 0D 28 2A 2A  29 0D 63 6F 6E 73 74 20  |(**).(**).const |
00000030: 6D 61 78 6C 65 6E 20 3D  20 38 30 3B 0D 74 79 70  |maxlen = 80;.typ|
00000040: 65 20 7A 65 69 63 68 65  6E 6B 65 74 74 65 3D 72  |e zeichenkette=r|
00000050: 65 63 6F 72 64 0D 20 20  20 20 20 20 20 20 20 20  |ecord.          |
00000060: 20 20 20 20 20 20 20 20  7A 65 69 63 68 65 6E 20  |        zeichen |
00000070: 3A 20 61 72 72 61 79 20  5B 31 2E 2E 6D 61 78 6C  |: array [1..maxl|
00000080: 65 6E 5D 20 6F 66 20 63  68 61 72 3B 0D 20 20 20  |en] of char;.   |
00000090: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 6C  |               l|
000000A0: 61 65 6E 67 65 20 20 3A  20 69 6E 74 65 67 65 72  |aenge  : integer|
000000B0: 0D 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000000C0: 20 20 20 65 6E 64 3B 0D  76 61 72 20 78 2C 79 2C  |   end;.var x,y,|
000000D0: 7A 20 3A 20 7A 65 69 63  68 65 6E 6B 65 74 74 65  |z : zeichenkette|
000000E0: 3B 0D 20 20 20 20 70 2C  6E 20 20 20 3A 20 69 6E  |;.    p,n   : in|
000000F0: 74 65 67 65 72 3B 0D 20  20 20 20 63 68 20 20 20  |teger;.    ch   |
00000100: 20 3A 20 63 68 61 72 3B  0D 28 2A 2A 29 0D 70 72  | : char;.(**).pr|
00000110: 6F 63 65 64 75 72 65 20  72 65 61 64 73 74 72 20  |ocedure readstr |
00000120: 28 76 61 72 20 61 20 3A  20 7A 65 69 63 68 65 6E  |(var a : zeichen|
00000130: 6B 65 74 74 65 29 3B 0D  76 61 72 20 69 20 3A 20  |kette);.var i : |
00000140: 69 6E 74 65 67 65 72 3B  0D 62 65 67 69 6E 0D 69  |integer;.begin.i|
00000150: 20 3A 3D 20 30 3B 0D 77  69 74 68 20 61 20 64 6F  | := 0;.with a do|
00000160: 0D 62 65 67 69 6E 0D 72  65 70 65 61 74 0D 28 2A  |.begin.repeat.(*|
00000170: 2A 29 0D 20 20 20 20 69  20 3A 3D 69 2B 31 3B 0D  |*).    i :=i+1;.|
00000180: 72 65 61 64 28 7A 65 69  63 68 65 6E 5B 69 5D 29  |read(zeichen[i])|
00000190: 3B 0D 75 6E 74 69 6C 20  7A 65 69 63 68 65 6E 5B  |;.until zeichen[|
000001A0: 69 5D 3D 27 40 27 3B 0D  72 65 61 64 6C 6E 3B 0D  |i]='@';.readln;.|
000001B0: 20 20 6C 61 65 6E 67 65  20 3A 3D 20 69 2D 31 0D  |  laenge := i-1.|
000001C0: 65 6E 64 0D 65 6E 64 3B  0D 28 2A 2A 29 0D 70 72  |end.end;.(**).pr|
000001D0: 6F 63 65 64 75 72 65 20  77 72 69 74 65 73 74 72  |ocedure writestr|
000001E0: 20 28 76 61 72 20 61 3A  7A 65 69 63 68 65 6E 6B  | (var a:zeichenk|
000001F0: 65 74 74 65 29 3B 0D 76  61 72 20 69 20 3A 20 69  |ette);.var i : i|
00000200: 6E 74 65 67 65 72 3B 0D  62 65 67 69 6E 0D 69 3A  |nteger;.begin.i:|
00000210: 3D 31 3B 0D 77 72 69 74  65 6C 6E 3B 0D 77 69 74  |=1;.writeln;.wit|
00000220: 68 20 61 20 64 6F 0D 20  20 62 65 67 69 6E 0D 20  |h a do.  begin. |
00000230: 20 77 68 69 6C 65 20 69  A0 3C 3D 20 6C 61 65 6E  | while i.<= laen|
00000240: 67 65 20 64 6F 0D 20 20  20 20 20 62 65 67 69 6E  |ge do.     begin|
00000250: 0D 20 20 20 20 20 77 72  69 74 65 20 28 7A 65 69  |.     write (zei|
00000260: 63 68 65 6E 5B 69 5D 29  3B 0D 20 20 20 20 20 69  |chen[i]);.     i|
00000270: 20 3A 3D 20 69 2B 31 0D  20 20 20 20 20 65 6E 64  | := i+1.     end|
00000280: 0D 20 20 65 6E 64 3B 0D  77 72 69 74 65 6C 6E 3B  |.  end;.writeln;|
00000290: 0D 77 72 69 74 65 6C 6E  3B 0D 65 6E 64 3B 0D 28  |.writeln;.end;.(|
000002A0: 2A 2A 29 0D 70 72 6F 63  65 64 75 72 65 20 63 6F  |**).procedure co|
000002B0: 6E 63 61 74 20 28 76 61  72 20 61 2C 62 2C 63 20  |ncat (var a,b,c |
000002C0: 3A 20 7A 65 69 63 68 65  6E 6B 65 74 74 65 29 3B  |: zeichenkette);|
000002D0: 0D 76 61 72 20 69 20 3A  20 69 6E 74 65 67 65 72  |.var i : integer|
000002E0: 3B 0D 62 65 67 69 6E 0D  69 66 20 61 2E 6C 61 65  |;.begin.if a.lae|
000002F0: 6E 67 65 20 2B 20 62 2E  6C 61 65 6E 67 65 20 3E  |nge + b.laenge >|
00000300: 20 6D 61 78 6C 65 6E 0D  20 20 20 74 68 65 6E 20  | maxlen.   then |
00000310: 62 65 67 69 6E 0D 20 20  20 20 20 20 20 20 63 2E  |begin.        c.|
00000320: 6C 61 65 6E 67 65 20 3A  3D 20 30 3B 0D 20 20 20  |laenge := 0;.   |
00000330: 20 20 20 20 20 77 72 69  74 65 6C 6E 28 27 46 65  |     writeln('Fe|
00000340: 68 6C 65 72 27 29 0D 20  20 20 20 20 20 20 20 65  |hler').        e|
00000350: 6E 64 0D 20 20 20 65 6C  73 65 20 62 65 67 69 6E  |nd.   else begin|
00000360: 0D 20 20 20 20 20 20 20  20 63 2E 6C 61 65 6E 67  |.        c.laeng|
00000370: 65 20 3A 3D 20 61 2E 6C  61 65 6E 67 65 2B 62 2E  |e := a.laenge+b.|
00000380: 6C 61 65 6E 67 65 3B 0D  20 20 20 20 20 20 20 20  |laenge;.        |
00000390: 66 6F 72 20 69 20 3A 3D  20 31 20 74 6F 20 61 2E  |for i := 1 to a.|
000003A0: 6C 61 65 6E 67 65 20 64  6F 0D 20 20 20 20 20 20  |laenge do.      |
000003B0: 20 20 20 20 20 20 63 2E  7A 65 69 63 68 65 6E 5B  |      c.zeichen[|
000003C0: 69 5D 20 3A 3D 20 61 2E  7A 65 69 63 68 65 6E 5B  |i] := a.zeichen[|
000003D0: 69 5D 3B 0D 20 20 20 20  20 20 20 20 66 6F 72 20  |i];.        for |
000003E0: 69 20 3A 3D 20 31 20 74  6F 20 62 2E 6C 61 65 6E  |i := 1 to b.laen|
000003F0: 67 65 20 64 6F 0D 20 20  20 20 20 20 20 20 20 20  |ge do.          |
00000400: 20 20 63 2E 7A 65 69 63  68 65 6E 5B 61 2E 6C 61  |  c.zeichen[a.la|
00000410: 65 6E 67 65 2B 69 5D 20  3A 3D 20 62 2E 7A 65 69  |enge+i] := b.zei|
00000420: 63 68 65 6E 5B 69 5D 3B  0D 20 20 20 20 20 20 20  |chen[i];.       |
00000430: 20 65 6E 64 0D 65 6E 64  3B 0D 28 2A 2A 29 0D 70  | end.end;.(**).p|
00000440: 72 6F 63 65 64 75 72 65  20 73 75 62 73 74 72 20  |rocedure substr |
00000450: 28 61 3A 7A 65 69 63 68  65 6E 6B 65 74 74 65 3B  |(a:zeichenkette;|
00000460: 73 31 2C 6C 31 3A 69 6E  74 65 67 65 72 3B 76 61  |s1,l1:integer;va|
00000470: 72 20 63 3A 7A 65 69 63  68 65 6E 6B 65 74 74 65  |r c:zeichenkette|
00000480: 29 3B 0D 76 61 72 20 69  20 3A 20 69 6E 74 65 67  |);.var i : integ|
00000490: 65 72 3B 0D 62 65 67 69  6E 0D 69 66 20 28 73 31  |er;.begin.if (s1|
000004A0: 3C 31 29 20 6F 72 20 28  61 2E 6C 61 65 6E 67 65  |<1) or (a.laenge|
000004B0: 3C 73 31 2B 6C 31 29 0D  20 20 20 74 68 65 6E 20  |<s1+l1).   then |
000004C0: 62 65 67 69 6E 0D 20 20  20 20 20 20 20 20 63 2E  |begin.        c.|
000004D0: 6C 61 65 6E 67 65 20 3A  3D 20 30 3B 0D 20 20 20  |laenge := 0;.   |
000004E0: 20 20 20 20 20 77 72 69  74 65 6C 6E 20 28 27 66  |     writeln ('f|
000004F0: 65 68 6C 65 72 27 29 0D  20 20 20 20 20 20 20 20  |ehler').        |
00000500: 65 6E 64 0D 20 20 20 65  6C 73 65 20 62 65 67 69  |end.   else begi|
00000510: 6E 0D 20 20 20 20 20 20  20 20 66 6F 72 20 69 20  |n.        for i |
00000520: 3A 3D 20 73 31 20 74 6F  20 73 31 2B 6C 31 2D 31  |:= s1 to s1+l1-1|
00000530: 20 64 6F 0D 20 20 20 20  20 20 20 20 63 2E 7A 65  | do.        c.ze|
00000540: 69 63 68 65 6E 5B 69 2D  73 31 2B 31 5D 20 3A 3D  |ichen[i-s1+1] :=|
00000550: 20 61 2E 7A 65 69 63 68  65 6E 5B 69 5D 3B 0D 20  | a.zeichen[i];. |
00000560: 20 20 20 20 20 20 20 20  63 2E 6C 61 65 6E 67 65  |        c.laenge|
00000570: 20 3A 3D 20 6C 31 0D 20  20 20 20 20 20 20 20 65  | := l1.        e|
00000580: 6E 64 0D 65 6E 64 3B 0D  28 2A 2A 29 0D 70 72 6F  |nd.end;.(**).pro|
00000590: 63 65 64 75 72 65 20 69  6E 73 65 72 74 20 28 76  |cedure insert (v|
000005A0: 61 72 20 61 3A 7A 65 69  63 68 65 6E 6B 65 74 74  |ar a:zeichenkett|
000005B0: 65 3B 70 31 3A 69 6E 74  65 67 65 72 3B 62 3A 7A  |e;p1:integer;b:z|
000005C0: 65 69 63 68 65 6E 6B 65  74 74 65 29 3B 0D 76 61  |eichenkette);.va|
000005D0: 72 20 69 3A 69 6E 74 65  67 65 72 3B 0D 62 65 67  |r i:integer;.beg|
000005E0: 69 6E 0D 69 66 20 28 70  31 3C 31 29 20 6F 72 20  |in.if (p1<1) or |
000005F0: 28 70 31 3E 61 2E 6C 61  65 6E 67 65 29 20 6F 72  |(p1>a.laenge) or|
00000600: 20 28 61 2E 6C 61 65 6E  67 65 2B 62 2E 6C 61 65  | (a.laenge+b.lae|
00000610: 6E 67 65 3E 6D 61 78 6C  65 6E 29 0D 20 20 20 74  |nge>maxlen).   t|
00000620: 68 65 6E 20 77 72 69 74  65 6C 6E 28 27 66 65 68  |hen writeln('feh|
00000630: 6C 65 72 27 29 0D 20 20  20 65 6C 73 65 20 62 65  |ler').   else be|
00000640: 67 69 6E 0D 20 20 20 20  20 20 20 20 61 2E 6C 61  |gin.        a.la|
00000650: 65 6E 67 65 20 3A 3D 20  61 2E 6C 61 65 6E 67 65  |enge := a.laenge|
00000660: 2B 62 2E 6C 61 65 6E 67  65 3B 0D 20 20 20 20 20  |+b.laenge;.     |
00000670: 20 20 20 66 6F 72 20 69  20 3A 3D 20 61 2E 6C 61  |   for i := a.la|
00000680: 65 6E 67 65 2D 62 2E 6C  61 65 6E 67 65 20 64 6F  |enge-b.laenge do|
00000690: 77 6E 74 6F 20 70 31 20  64 6F 0D 20 20 20 20 20  |wnto p1 do.     |
000006A0: 20 20 20 20 20 20 20 61  2E 7A 65 69 63 68 65 6E  |       a.zeichen|
000006B0: 5B 69 2B 62 2E 6C 61 65  6E 67 65 5D 20 3A 3D 20  |[i+b.laenge] := |
000006C0: 61 2E 7A 65 69 63 68 65  6E 5B 69 5D 3B 0D 20 20  |a.zeichen[i];.  |
000006D0: 20 20 20 20 20 20 66 6F  72 20 69 20 3A 3D 20 31  |      for i := 1|
000006E0: 20 74 6F 20 62 2E 6C 61  65 6E 67 65 20 64 6F 0D  | to b.laenge do.|
000006F0: 20 20 20 20 20 20 20 20  20 20 20 20 61 2E 7A 65  |            a.ze|
00000700: 69 63 68 65 6E 5B 70 31  2B 69 2D 31 5D 20 3A 3D  |ichen[p1+i-1] :=|
00000710: 20 62 2E 7A 65 69 63 68  65 6E 5B 69 5D 3B 0D 20  | b.zeichen[i];. |
00000720: 20 20 20 20 20 20 20 65  6E 64 0D 65 6E 64 3B 0D  |       end.end;.|
00000730: 28 2A 2A 29 0D 70 72 6F  63 65 64 75 72 65 20 64  |(**).procedure d|
00000740: 65 6C 65 74 65 20 28 76  61 72 20 61 20 3A 7A 65  |elete (var a :ze|
00000750: 69 63 68 65 6E 6B 65 74  74 65 3B 70 31 2C 6E 31  |ichenkette;p1,n1|
00000760: 20 3A 20 69 6E 74 65 67  65 72 29 3B 0D 76 61 72  | : integer);.var|
00000770: 20 69 20 3A 69 6E 74 65  67 65 72 3B 0D 62 65 67  | i :integer;.beg|
00000780: 69 6E 0D 69 66 20 28 70  31 2B 6E 31 2D 31 20 3E  |in.if (p1+n1-1 >|
00000790: 20 61 2E 6C 61 65 6E 67  65 29 20 6F 72 20 28 70  | a.laenge) or (p|
000007A0: 31 3C 31 29 0D 20 20 20  74 68 65 6E 20 77 72 69  |1<1).   then wri|
000007B0: 74 65 6C 6E 20 28 27 66  65 68 6C 65 72 27 29 0D  |teln ('fehler').|
000007C0: 20 20 20 65 6C 73 65 20  77 69 74 68 20 61 20 64  |   else with a d|
000007D0: 6F 0D 20 20 20 20 20 20  20 20 20 20 20 20 20 62  |o.             b|
000007E0: 65 67 69 6E 0D 20 20 20  20 20 20 20 20 20 20 20  |egin.           |
000007F0: 20 20 6C 61 65 6E 67 65  20 3A 3D 20 6C 61 65 6E  |  laenge := laen|
00000800: 67 65 2D 6E 31 3B 0D 20  20 20 20 20 20 20 20 20  |ge-n1;.         |
00000810: 20 20 20 20 66 6F 72 20  69 20 3A 3D 20 70 31 20  |    for i := p1 |
00000820: 74 6F 20 6C 61 65 6E 67  65 20 64 6F 0D 20 20 20  |to laenge do.   |
00000830: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 7A 65  |              ze|
00000840: 69 63 68 65 6E 5B 69 5D  20 3A 3D 20 7A 65 69 63  |ichen[i] := zeic|
00000850: 68 65 6E 5B 69 2B 6E 31  5D 3B 0D 20 20 20 20 20  |hen[i+n1];.     |
00000860: 20 20 20 20 20 20 20 20  65 6E 64 0D 65 6E 64 3B  |        end.end;|
00000870: 0D 28 2A 2A 29 0D 66 75  6E 63 74 69 6F 6E 20 69  |.(**).function i|
00000880: 6E 64 65 78 20 28 61 2C  62 20 3A 20 7A 65 69 63  |ndex (a,b : zeic|
00000890: 68 65 6E 6B 65 74 74 65  29 3A 69 6E 74 65 67 65  |henkette):intege|
000008A0: 72 3B 0D 76 61 72 20 69  2C 6A 20 3A 20 69 6E 74  |r;.var i,j : int|
000008B0: 65 67 65 72 3B 0D 20 20  20 20 61 75 73 20 3A 20  |eger;.    aus : |
000008C0: 62 6F 6F 6C 65 61 6E 3B  0D 62 65 67 69 6E 0D 6A  |boolean;.begin.j|
000008D0: 20 3A 3D 20 31 3B 0D 69  20 3A 3D 20 31 3B 0D 61  | := 1;.i := 1;.a|
000008E0: 75 73 20 3A 3D 20 66 61  6C 73 65 3B 0D 77 68 69  |us := false;.whi|
000008F0: 6C 65 20 28 61 2E 7A 65  69 63 68 65 6E 5B 6A 5D  |le (a.zeichen[j]|
00000900: 20 3C 3E 20 62 2E 7A 65  69 63 68 65 6E 5B 31 5D  | <> b.zeichen[1]|
00000910: 29 20 61 6E 64 20 6E 6F  74 20 61 75 73 20 64 6F  |) and not aus do|
00000920: 0D 20 20 20 20 20 20 62  65 67 69 6E 0D 20 20 20  |.      begin.   |
00000930: 20 20 20 6A 20 3A 3D 20  6A 2B 31 3B 0D 20 20 20  |   j := j+1;.   |
00000940: 20 20 20 69 66 20 6A 20  3E 20 61 2E 6C 61 65 6E  |   if j > a.laen|
00000950: 67 65 0D 20 20 20 20 20  20 20 74 68 65 6E 20 61  |ge.       then a|
00000960: 75 73 20 3A 3D 20 74 72  75 65 0D 20 20 20 20 20  |us := true.     |
00000970: 20 20 65 6E 64 3B 0D 77  68 69 6C 65 20 28 69 20  |  end;.while (i |
00000980: 3C 20 62 2E 6C 61 65 6E  67 65 29 20 61 6E 64 20  |< b.laenge) and |
00000990: 6E 6F 74 20 61 75 73 20  64 6F 0D 20 20 20 20 20  |not aus do.     |
000009A0: 20 69 66 20 61 2E 7A 65  69 63 68 65 6E 5B 6A 2B  | if a.zeichen[j+|
000009B0: 69 5D 20 3C 3E 20 62 2E  7A 65 69 63 68 65 6E 5B  |i] <> b.zeichen[|
000009C0: 69 2B 31 5D 0D 20 20 20  20 20 20 20 20 20 74 68  |i+1].         th|
000009D0: 65 6E 20 61 75 73 20 3A  3D 20 74 72 75 65 0D 20  |en aus := true. |
000009E0: 20 20 20 20 20 20 20 20  20 65 6C 73 65 20 69 20  |         else i |
000009F0: 3A 3D 20 69 2B 31 3B 0D  69 66 20 61 75 73 20 74  |:= i+1;.if aus t|
00000A00: 68 65 6E 20 6A 20 3A 3D  20 30 3B 0D 69 6E 64 65  |hen j := 0;.inde|
00000A10: 78 20 3A 3D 20 6A 3B 0D  65 6E 64 3B 0D 28 2A 2A  |x := j;.end;.(**|
00000A20: 29 0D 70 72 6F 63 65 64  75 72 65 20 74 72 69 6D  |).procedure trim|
00000A30: 20 28 76 61 72 20 61 20  3A 20 7A 65 69 63 68 65  | (var a : zeiche|
00000A40: 6E 6B 65 74 74 65 29 3B  0D 76 61 72 20 69 2C 6A  |nkette);.var i,j|
00000A50: 2C 6B 20 3A 20 69 6E 74  65 67 65 72 3B 0D 20 20  |,k : integer;.  |
00000A60: 20 20 61 75 73 20 20 20  3A 20 62 6F 6F 6C 65 61  |  aus   : boolea|
00000A70: 6E 3B 0D 62 65 67 69 6E  0D 69 20 3A 3D 20 31 3B  |n;.begin.i := 1;|
00000A80: 0D 61 75 73 20 3A 3D 20  66 61 6C 73 65 3B 0D 77  |.aus := false;.w|
00000A90: 68 69 6C 65 20 28 69 3C  3D 61 2E 6C 61 65 6E 67  |hile (i<=a.laeng|
00000AA0: 65 29 20 61 6E 64 20 6E  6F 74 20 61 75 73 20 64  |e) and not aus d|
00000AB0: 6F 0D 20 20 20 20 20 20  69 66 20 61 2E 7A 65 69  |o.      if a.zei|
00000AC0: 63 68 65 6E 5B 69 5D 20  3C 3E 20 27 20 27 0D 20  |chen[i] <> ' '. |
00000AD0: 20 20 20 20 20 20 20 20  74 68 65 6E 20 61 75 73  |        then aus|
00000AE0: 20 3A 3D 20 74 72 75 65  0D 20 20 20 20 20 20 20  | := true.       |
00000AF0: 20 20 65 6C 73 65 20 69  20 3A 3D 20 69 2B 31 3B  |  else i := i+1;|
00000B00: 0D 6A 20 3A 3D 20 69 3B  0D 69 20 3A 3D 20 61 2E  |.j := i;.i := a.|
00000B10: 6C 61 65 6E 67 65 3B 0D  61 75 73 20 3A 3D 20 66  |laenge;.aus := f|
00000B20: 61 6C 73 65 3B 0D 77 68  69 6C 65 20 28 69 3E 30  |alse;.while (i>0|
00000B30: 29 20 61 6E 64 20 6E 6F  74 20 61 75 73 20 64 6F  |) and not aus do|
00000B40: 0D 20 20 20 20 20 20 69  66 20 61 2E 7A 65 69 63  |.      if a.zeic|
00000B50: 68 65 6E 5B 69 5D 20 3C  3E 20 27 20 27 0D 20 20  |hen[i] <> ' '.  |
00000B60: 20 20 20 20 20 20 20 74  68 65 6E 20 61 75 73 20  |       then aus |
00000B70: 3A 3D 20 74 72 75 65 0D  20 20 20 20 20 20 20 20  |:= true.        |
00000B80: 20 65 6C 73 65 20 69 20  3A 3D 20 69 2D 31 3B 0D  | else i := i-1;.|
00000B90: 6B 20 3A 3D 20 69 3B 0D  66 6F 72 20 69 3A 3D 6A  |k := i;.for i:=j|
00000BA0: 20 74 6F 20 6B 20 64 6F  0D 20 20 20 20 61 2E 7A  | to k do.    a.z|
00000BB0: 65 69 63 68 65 6E 5B 69  2D 6A 2B 31 5D 20 3A 3D  |eichen[i-j+1] :=|
00000BC0: 20 61 2E 7A 65 69 63 68  65 6E 5B 69 5D 3B 0D 61  | a.zeichen[i];.a|
00000BD0: 2E 6C 61 65 6E 67 65 20  3A 3D 20 6B 2D 6A 2B 31  |.laenge := k-j+1|
00000BE0: 0D 65 6E 64 3B 0D 28 2A  2A 29 0D 70 72 6F 63 65  |.end;.(**).proce|
00000BF0: 64 75 72 65 20 72 65 76  65 72 74 20 28 76 61 72  |dure revert (var|
00000C00: 20 61 3A 7A 65 69 63 68  65 6E 6B 65 74 74 65 29  | a:zeichenkette)|
00000C10: 3B 0D 76 61 72 20 62 3A  7A 65 69 63 68 65 6E 6B  |;.var b:zeichenk|
00000C20: 65 74 74 65 3B 0D 20 20  20 20 69 20 3A 20 69 6E  |ette;.    i : in|
00000C30: 74 65 67 65 72 3B 0D 62  65 67 69 6E 0D 66 6F 72  |teger;.begin.for|
00000C40: 20 69 20 3A 3D 20 31 20  74 6F 20 61 2E 6C 61 65  | i := 1 to a.lae|
00000C50: 6E 67 65 20 64 6F 0D 20  20 20 20 62 2E 7A 65 69  |nge do.    b.zei|
00000C60: 63 68 65 6E 5B 61 2E 6C  61 65 6E 67 65 2B 31 2D  |chen[a.laenge+1-|
00000C70: 69 5D 20 3A 3D 20 61 2E  7A 65 69 63 68 65 6E 5B  |i] := a.zeichen[|
00000C80: 69 5D 3B 0D 61 2E 7A 65  69 63 68 65 6E 20 3A 3D  |i];.a.zeichen :=|
00000C90: 20 62 2E 7A 65 69 63 68  65 6E 0D 65 6E 64 3B 0D  | b.zeichen.end;.|
00000CA0: 28 2A 2A 29 0D 70 72 6F  63 65 64 75 72 65 20 6D  |(**).procedure m|
00000CB0: 65 6E 75 65 3B 0D 62 65  67 69 6E 0D 77 72 69 74  |enue;.begin.writ|
00000CC0: 65 6C 6E 3B 0D 77 72 69  74 65 6C 6E 28 27 20 20  |eln;.writeln('  |
00000CD0: 20 20 20 20 20 20 20 6D  20 65 20 6E 20 75 20 65  |       m e n u e|
00000CE0: 20 3A 27 29 3B 0D 77 72  69 74 65 6C 6E 3B 0D 77  | :');.writeln;.w|
00000CF0: 72 69 74 65 6C 6E 28 27  20 6C 20 3A 20 72 65 61  |riteln(' l : rea|
00000D00: 64 73 74 72 2C 65 69 6E  6C 65 73 65 6E 20 65 69  |dstr,einlesen ei|
00000D10: 6E 65 72 20 7A 65 69 63  68 65 6E 6B 65 74 74 65  |ner zeichenkette|
00000D20: 20 76 6F 6D 20 62 69 6C  64 73 63 68 69 72 6D 27  | vom bildschirm'|
00000D30: 29 3B 0D 77 72 69 74 65  6C 6E 28 27 20 77 20 3A  |);.writeln(' w :|
00000D40: 20 77 72 69 74 65 73 74  72 2C 61 75 73 67 61 62  | writestr,ausgab|
00000D50: 65 20 65 69 6E 65 72 20  7A 65 69 63 68 65 6E 6B  |e einer zeichenk|
00000D60: 65 74 74 65 20 61 6D 20  62 69 6C 64 73 63 68 69  |ette am bildschi|
00000D70: 72 6D 27 29 3B 0D 77 72  69 74 65 6C 6E 28 27 20  |rm');.writeln(' |
00000D80: 63 20 3A 20 63 6F 6E 63  61 74 2C 7A 75 73 61 6D  |c : concat,zusam|
00000D90: 6D 65 6E 66 75 65 67 65  6E 20 76 6F 6E 20 7A 65  |menfuegen von ze|
00000DA0: 69 63 68 65 6E 6B 65 74  74 65 6E 20 78 2C 79 20  |ichenketten x,y |
00000DB0: 69 6E 20 7A 27 29 3B 0D  77 72 69 74 65 6C 6E 28  |in z');.writeln(|
00000DC0: 27 20 73 20 3A 20 73 75  62 73 74 72 2C 7A 75 77  |' s : substr,zuw|
00000DD0: 65 69 73 75 6E 67 20 65  69 6E 65 72 20 74 65 69  |eisung einer tei|
00000DE0: 6C 6B 65 74 74 65 20 76  6F 6E 20 78 20 61 6E 20  |lkette von x an |
00000DF0: 7A 27 29 3B 0D 77 72 69  74 65 6C 6E 28 27 20 65  |z');.writeln(' e|
00000E00: 20 3A 20 69 6E 73 65 72  74 2C 65 69 6E 66 75 65  | : insert,einfue|
00000E10: 67 65 6E 20 65 69 6E 65  72 20 6B 65 74 74 65 20  |gen einer kette |
00000E20: 79 20 69 6E 20 78 27 29  3B 0D 77 72 69 74 65 6C  |y in x');.writel|
00000E30: 6E 28 27 20 64 20 3A 20  64 65 6C 65 74 65 2C 6C  |n(' d : delete,l|
00000E40: 6F 65 73 63 68 65 6E 20  76 6F 6E 20 6E 20 7A 65  |oeschen von n ze|
00000E50: 69 63 68 65 6E 20 61 75  73 20 64 65 72 20 6B 65  |ichen aus der ke|
00000E60: 74 74 65 20 78 27 29 3B  0D 77 72 69 74 65 6C 6E  |tte x');.writeln|
00000E70: 28 27 20 69 20 3A 20 69  6E 64 65 78 2C 70 6F 73  |(' i : index,pos|
00000E80: 69 74 69 6F 6E 20 61 62  20 64 65 72 20 79 20 69  |ition ab der y i|
00000E90: 6E 20 78 20 61 75 66 74  72 69 74 74 2C 30 20 62  |n x auftritt,0 b|
00000EA0: 65 69 20 6E 69 63 68 74  27 29 3B 0D 77 72 69 74  |ei nicht');.writ|
00000EB0: 65 6C 6E 28 27 20 74 20  3A 20 74 72 69 6D 2C 66  |eln(' t : trim,f|
00000EC0: 75 65 68 72 65 6E 64 65  20 75 6E 64 20 66 6F 6C  |uehrende und fol|
00000ED0: 67 65 6E 64 65 20 6C 65  65 72 7A 65 69 63 68 65  |gende leerzeiche|
00000EE0: 6E 20 76 6F 6E 20 78 20  65 6E 74 66 65 72 6E 74  |n von x entfernt|
00000EF0: 27 29 3B 0D 77 72 69 74  65 6C 6E 28 27 20 72 20  |');.writeln(' r |
00000F00: 3A 20 72 65 76 65 72 74  2C 7A 65 69 63 68 65 6E  |: revert,zeichen|
00000F10: 6B 65 74 74 65 20 78 20  77 69 72 64 20 75 6D 67  |kette x wird umg|
00000F20: 65 6B 65 68 72 74 27 29  3B 0D 77 72 69 74 65 6C  |ekehrt');.writel|
00000F30: 6E 28 27 20 6D 20 3A 20  61 75 73 67 61 62 65 20  |n(' m : ausgabe |
00000F40: 64 69 65 73 65 73 20 6D  65 6E 75 65 73 27 29 3B  |dieses menues');|
00000F50: 0D 77 72 69 74 65 6C 6E  28 27 20 71 20 3A 20 70  |.writeln(' q : p|
00000F60: 72 6F 67 72 61 6D 6D 65  6E 64 65 27 29 3B 0D 77  |rogrammende');.w|
00000F70: 72 69 74 65 6C 6E 0D 65  6E 64 3B 0D 28 2A 2A 29  |riteln.end;.(**)|
00000F80: 0D 62 65 67 69 6E 0D 77  72 69 74 65 6C 6E 28 27  |.begin.writeln('|
00000F90: 65 69 6E 6C 65 73 65 6E  20 64 65 72 20 5A 65 69  |einlesen der Zei|
00000FA0: 63 68 65 6E 6B 65 74 74  65 6E 20 78 2C 79 2C 7A  |chenketten x,y,z|
00000FB0: 27 29 3B 0D 72 65 61 64  73 74 72 28 78 29 3B 0D  |');.readstr(x);.|
00000FC0: 72 65 61 64 73 74 72 28  79 29 3B 0D 72 65 61 64  |readstr(y);.read|
00000FD0: 73 74 72 28 7A 29 3B 0D  72 65 70 65 61 74 0D 20  |str(z);.repeat. |
00000FE0: 20 77 72 69 74 65 6C 6E  28 27 62 65 66 65 68 6C  | writeln('befehl|
00000FF0: 73 63 6F 64 65 20 65 69  6E 67 65 62 65 6E 20 2F  |scode eingeben /|
00001000: 20 6D 3D 6D 65 6E 75 65  27 29 3B 0D 20 20 77 72  | m=menue');.  wr|
00001010: 69 74 65 6C 6E 3B 0D 20  20 72 65 61 64 6C 6E 28  |iteln;.  readln(|
00001020: 63 68 29 3B 0D 20 20 63  61 73 65 20 63 68 20 6F  |ch);.  case ch o|
00001030: 66 0D 20 20 20 20 20 20  27 6C 27 3A 20 62 65 67  |f.      'l': beg|
00001040: 69 6E 0D 20 20 20 20 20  20 20 20 20 20 20 77 72  |in.           wr|
00001050: 69 74 65 6C 6E 28 27 77  65 6C 63 68 65 20 5A 65  |iteln('welche Ze|
00001060: 69 63 68 65 6E 6B 65 74  74 65 20 65 69 6E 6C 65  |ichenkette einle|
00001070: 73 65 6E 20 3F 27 29 3B  0D 20 20 20 20 20 20 20  |sen ?');.       |
00001080: 20 20 20 20 72 65 61 64  6C 6E 28 63 68 29 3B 0D  |    readln(ch);.|
00001090: 20 20 20 20 20 20 20 20  20 20 20 63 61 73 65 20  |           case |
000010A0: 63 68 20 6F 66 0D 20 20  20 20 20 20 20 20 20 20  |ch of.          |
000010B0: 20 27 78 27 3A 20 72 65  61 64 73 74 72 28 78 29  | 'x': readstr(x)|
000010C0: 3B 0D 20 20 20 20 20 20  20 20 20 20 20 27 79 27  |;.           'y'|
000010D0: 3A 20 72 65 61 64 73 74  72 28 79 29 3B 0D 20 20  |: readstr(y);.  |
000010E0: 20 20 20 20 20 20 20 20  20 27 7A 27 3A 20 72 65  |         'z': re|
000010F0: 61 64 73 74 72 28 7A 29  3B 0D 20 20 20 20 20 20  |adstr(z);.      |
00001100: 20 20 20 20 20 65 6E 64  0D 20 20 20 20 20 20 20  |     end.       |
00001110: 20 20 20 20 65 6E 64 3B  0D 20 20 20 20 20 20 27  |    end;.      '|
00001120: 77 27 3A 20 62 65 67 69  6E 0D 20 20 20 20 20 20  |w': begin.      |
00001130: 20 20 20 20 20 77 72 69  74 65 6C 6E 28 27 77 65  |     writeln('we|
00001140: 6C 63 68 65 20 5A 65 69  63 68 65 6E 6B 65 74 74  |lche Zeichenkett|
00001150: 65 20 61 75 73 67 65 62  65 6E 20 3F 27 29 3B 0D  |e ausgeben ?');.|
00001160: 20 20 20 20 20 20 20 20  20 20 20 72 65 61 64 6C  |           readl|
00001170: 6E 28 63 68 29 3B 0D 20  20 20 20 20 20 20 20 20  |n(ch);.         |
00001180: 20 20 63 61 73 65 20 63  68 20 6F 66 0D 20 20 20  |  case ch of.   |
00001190: 20 20 20 20 20 20 20 20  27 78 27 3A 20 77 72 69  |        'x': wri|
000011A0: 74 65 73 74 72 28 78 29  3B 0D 20 20 20 20 20 20  |testr(x);.      |
000011B0: 20 20 20 20 20 27 79 27  3A 20 77 72 69 74 65 73  |     'y': writes|
000011C0: 74 72 28 79 29 3B 0D 20  20 20 20 20 20 20 20 20  |tr(y);.         |
000011D0: 20 20 27 7A 27 3A 20 77  72 69 74 65 73 74 72 28  |  'z': writestr(|
000011E0: 7A 29 3B 0D 20 20 20 20  20 20 20 20 20 20 20 65  |z);.           e|
000011F0: 6E 64 0D 20 20 20 20 20  20 20 20 20 20 20 65 6E  |nd.           en|
00001200: 64 3B 0D 20 20 20 20 20  20 27 63 27 3A 20 63 6F  |d;.      'c': co|
00001210: 6E 63 61 74 28 78 2C 79  2C 7A 29 3B 0D 20 20 20  |ncat(x,y,z);.   |
00001220: 20 20 20 27 73 27 3A 20  62 65 67 69 6E 0D 20 20  |   's': begin.  |
00001230: 20 20 20 20 20 20 20 20  20 77 72 69 74 65 6C 6E  |         writeln|
00001240: 28 27 62 65 67 69 6E 6E  20 61 6E 20 77 65 6C 63  |('beginn an welc|
00001250: 68 65 72 20 70 6F 73 69  74 69 6F 6E 20 3F 27 29  |her position ?')|
00001260: 3B 0D 20 20 20 20 20 20  20 20 20 20 20 72 65 61  |;.           rea|
00001270: 64 6C 6E 28 70 29 3B 0D  20 20 20 20 20 20 20 20  |dln(p);.        |
00001280: 20 20 20 77 72 69 74 65  6C 6E 28 27 77 69 65 76  |   writeln('wiev|
00001290: 69 65 6C 65 20 7A 65 69  63 68 65 6E 20 3F 27 29  |iele zeichen ?')|
000012A0: 3B 0D 20 20 20 20 20 20  20 20 20 20 20 72 65 61  |;.           rea|
000012B0: 64 6C 6E 28 6E 29 3B 0D  20 20 20 20 20 20 20 20  |dln(n);.        |
000012C0: 20 20 20 73 75 62 73 74  72 28 78 2C 70 2C 6E 2C  |   substr(x,p,n,|
000012D0: 7A 29 0D 20 20 20 20 20  20 20 20 20 20 20 65 6E  |z).           en|
000012E0: 64 3B 0D 20 20 20 20 20  20 27 65 27 3A 20 62 65  |d;.      'e': be|
000012F0: 67 69 6E 0D 20 20 20 20  20 20 20 20 20 20 20 77  |gin.           w|
00001300: 72 69 74 65 6C 6E 28 27  61 6E 20 77 65 6C 63 68  |riteln('an welch|
00001310: 65 72 20 70 6F 73 69 74  69 6F 6E 20 3F 27 29 3B  |er position ?');|
00001320: 0D 20 20 20 20 20 20 20  20 20 20 20 72 65 61 64  |.           read|
00001330: 6C 6E 28 70 29 3B 0D 20  20 20 20 20 20 20 20 20  |ln(p);.         |
00001340: 20 20 69 6E 73 65 72 74  28 78 2C 70 2C 79 29 0D  |  insert(x,p,y).|
00001350: 20 20 20 20 20 20 20 20  20 20 20 65 6E 64 3B 0D  |           end;.|
00001360: 20 20 20 20 20 20 27 64  27 3A 20 62 65 67 69 6E  |      'd': begin|
00001370: 0D 20 20 20 20 20 20 20  20 20 20 20 77 72 69 74  |.           writ|
00001380: 65 6C 6E 28 27 61 6E 20  77 65 6C 63 68 65 72 20  |eln('an welcher |
00001390: 70 6F 73 69 74 69 6F 6E  20 3F 27 29 3B 0D 20 20  |position ?');.  |
000013A0: 20 20 20 20 20 20 20 20  20 72 65 61 64 6C 6E 28  |         readln(|
000013B0: 70 29 3B 0D 20 20 20 20  20 20 20 20 20 20 20 77  |p);.           w|
000013C0: 72 69 74 65 6C 6E 28 27  77 69 65 76 69 65 6C 65  |riteln('wieviele|
000013D0: 20 7A 65 69 63 68 65 6E  20 3F 27 29 3B 0D 20 20  | zeichen ?');.  |
000013E0: 20 20 20 20 20 20 20 20  20 72 65 61 64 6C 6E 28  |         readln(|
000013F0: 6E 29 3B 0D 20 20 20 20  20 20 20 20 20 20 20 64  |n);.           d|
00001400: 65 6C 65 74 65 28 78 2C  70 2C 6E 29 0D 20 20 20  |elete(x,p,n).   |
00001410: 20 20 20 20 20 20 20 20  65 6E 64 3B 0D 20 20 20  |        end;.   |
00001420: 20 20 20 27 69 27 3A 20  62 65 67 69 6E 0D 20 20  |   'i': begin.  |
00001430: 20 20 20 20 20 20 20 20  20 70 3A 3D 69 6E 64 65  |         p:=inde|
00001440: 78 28 78 2C 79 29 3B 0D  20 20 20 20 20 20 20 20  |x(x,y);.        |
00001450: 20 20 20 77 72 69 74 65  6C 6E 28 70 29 0D 20 20  |   writeln(p).  |
00001460: 20 20 20 20 20 20 20 20  20 65 6E 64 3B 0D 20 20  |         end;.  |
00001470: 20 20 20 20 20 27 74 27  3A 20 74 72 69 6D 28 78  |     't': trim(x|
00001480: 29 3B 0D 20 20 20 20 20  20 27 72 27 3A 20 72 65  |);.      'r': re|
00001490: 76 65 72 74 28 78 29 3B  0D 20 20 20 20 20 20 27  |vert(x);.      '|
000014A0: 6D 27 3A 20 6D 65 6E 75  65 3B 0D 20 20 20 20 20  |m': menue;.     |
000014B0: 20 20 27 71 27 3A 3B 0D  20 20 20 20 65 6E 64 3B  |  'q':;.    end;|
000014C0: 0D 20 20 20 75 6E 74 69  6C 20 63 68 20 3D 20 27  |.   until ch = '|
000014D0: 71 27 3B 0D 77 72 69 74  65 6C 6E 28 27 65 6E 64  |q';.writeln('end|
000014E0: 65 20 64 65 73 20 70 72  6F 67 72 61 6D 6D 65 73  |e des programmes|
000014F0: 27 29 0D 65 6E 64 2E 0D                           |').end..        |
PROGRAM STRINGS (INPUT,OUTPUT);.(**).(**
).CONST MAXLEN = 80;.TYPE ZEICHENKETTE=R
ECORD.                  ZEICHEN : ARRAY 
[1..MAXLEN] OF CHAR;.                  L
AENGE  : INTEGER.                  END;.
VAR X,Y,Z : ZEICHENKETTE;.    P,N   : IN
TEGER;.    CH    : CHAR;.(**).PROCEDURE 
READSTR (VAR A : ZEICHENKETTE);.VAR I : 
INTEGER;.BEGIN.I := 0;.WITH A DO.BEGIN.R
EPEAT.(**).    I :=I+1;.READ(ZEICHEN[I])
;.UNTIL ZEICHEN[I]='@';.READLN;.  LAENGE
 := I-1.END.END;.(**).PROCEDURE WRITESTR
 (VAR A:ZEICHENKETTE);.VAR I : INTEGER;.
BEGIN.I:=1;.WRITELN;.WITH A DO.  BEGIN. 
 WHILE I <= LAENGE DO.     BEGIN.     WR
ITE (ZEICHEN[I]);.     I := I+1.     END
.  END;.WRITELN;.WRITELN;.END;.(**).PROC
EDURE CONCAT (VAR A,B,C : ZEICHENKETTE);
.VAR I : INTEGER;.BEGIN.IF A.LAENGE + B.
LAENGE > MAXLEN.   THEN BEGIN.        C.
LAENGE := 0;.        WRITELN('FEHLER'). 
       END.   ELSE BEGIN.        C.LAENG
E := A.LAENGE+B.LAENGE;.        FOR I :=
 1 TO A.LAENGE DO.            C.ZEICHEN[
I] := A.ZEICHEN[I];.        FOR I := 1 T
O B.LAENGE DO.            C.ZEICHEN[A.LA
ENGE+I] := B.ZEICHEN[I];.        END.END
;.(**).PROCEDURE SUBSTR (A:ZEICHENKETTE;
S1,L1:INTEGER;VAR C:ZEICHENKETTE);.VAR I
 : INTEGER;.BEGIN.IF (S1<1) OR (A.LAENGE
<S1+L1).   THEN BEGIN.        C.LAENGE :
= 0;.        WRITELN ('FEHLER').        
END.   ELSE BEGIN.        FOR I := S1 TO
 S1+L1-1 DO.        C.ZEICHEN[I-S1+1] :=
 A.ZEICHEN[I];.         C.LAENGE := L1. 
       END.END;.(**).PROCEDURE INSERT (V
AR A:ZEICHENKETTE;P1:INTEGER;B:ZEICHENKE
TTE);.VAR I:INTEGER;.BEGIN.IF (P1<1) OR 
(P1>A.LAENGE) OR (A.LAENGE+B.LAENGE>MAXL
EN).   THEN WRITELN('FEHLER').   ELSE BE
GIN.        A.LAENGE := A.LAENGE+B.LAENG
E;.        FOR I := A.LAENGE-B.LAENGE DO
WNTO P1 DO.            A.ZEICHEN[I+B.LAE
NGE] := A.ZEICHEN[I];.        FOR I := 1
 TO B.LAENGE DO.            A.ZEICHEN[P1
+I-1] := B.ZEICHEN[I];.        END.END;.
(**).PROCEDURE DELETE (VAR A :ZEICHENKET
TE;P1,N1 : INTEGER);.VAR I :INTEGER;.BEG
IN.IF (P1+N1-1 > A.LAENGE) OR (P1<1).   
THEN WRITELN ('FEHLER').   ELSE WITH A D
O.             BEGIN.             LAENGE
 := LAENGE-N1;.             FOR I := P1 
TO LAENGE DO.                 ZEICHEN[I]
 := ZEICHEN[I+N1];.             END.END;
.(**).FUNCTION INDEX (A,B : ZEICHENKETTE
):INTEGER;.VAR I,J : INTEGER;.    AUS : 
BOOLEAN;.BEGIN.J := 1;.I := 1;.AUS := FA
LSE;.WHILE (A.ZEICHEN[J] <> B.ZEICHEN[1]
) AND NOT AUS DO.      BEGIN.      J := 
J+1;.      IF J > A.LAENGE.       THEN A
US := TRUE.       END;.WHILE (I < B.LAEN
GE) AND NOT AUS DO.      IF A.ZEICHEN[J+
I] <> B.ZEICHEN[I+1].         THEN AUS :
= TRUE.          ELSE I := I+1;.IF AUS T
HEN J := 0;.INDEX := J;.END;.(**).PROCED
URE TRIM (VAR A : ZEICHENKETTE);.VAR I,J
,K : INTEGER;.    AUS   : BOOLEAN;.BEGIN
.I := 1;.AUS := FALSE;.WHILE (I<=A.LAENG
E) AND NOT AUS DO.      IF A.ZEICHEN[I] 
<> ' '.         THEN AUS := TRUE.       
  ELSE I := I+1;.J := I;.I := A.LAENGE;.
AUS := FALSE;.WHILE (I>0) AND NOT AUS DO
.      IF A.ZEICHEN[I] <> ' '.         T
HEN AUS := TRUE.         ELSE I := I-1;.
K := I;.FOR I:=J TO K DO.    A.ZEICHEN[I
-J+1] := A.ZEICHEN[I];.A.LAENGE := K-J+1
.END;.(**).PROCEDURE REVERT (VAR A:ZEICH
ENKETTE);.VAR B:ZEICHENKETTE;.    I : IN
TEGER;.BEGIN.FOR I := 1 TO A.LAENGE DO. 
   B.ZEICHEN[A.LAENGE+1-I] := A.ZEICHEN[
I];.A.ZEICHEN := B.ZEICHEN.END;.(**).PRO
CEDURE MENUE;.BEGIN.WRITELN;.WRITELN('  
       M E N U E :');.WRITELN;.WRITELN('
 L : READSTR,EINLESEN EINER ZEICHENKETTE
 VOM BILDSCHIRM');.WRITELN(' W : WRITEST
R,AUSGABE EINER ZEICHENKETTE AM BILDSCHI
RM');.WRITELN(' C : CONCAT,ZUSAMMENFUEGE
N VON ZEICHENKETTEN X,Y IN Z');.WRITELN(
' S : SUBSTR,ZUWEISUNG EINER TEILKETTE V
ON X AN Z');.WRITELN(' E : INSERT,EINFUE
GEN EINER KETTE Y IN X');.WRITELN(' D : 
DELETE,LOESCHEN VON N ZEICHEN AUS DER KE
TTE X');.WRITELN(' I : INDEX,POSITION AB
 DER Y IN X AUFTRITT,0 BEI NICHT');.WRIT
ELN(' T : TRIM,FUEHRENDE UND FOLGENDE LE
ERZEICHEN VON X ENTFERNT');.WRITELN(' R 
: REVERT,ZEICHENKETTE X WIRD UMGEKEHRT')
;.WRITELN(' M : AUSGABE DIESES MENUES');
.WRITELN(' Q : PROGRAMMENDE');.WRITELN.E
ND;.(**).BEGIN.WRITELN('EINLESEN DER ZEI
CHENKETTEN X,Y,Z');.READSTR(X);.READSTR(
Y);.READSTR(Z);.REPEAT.  WRITELN('BEFEHL
SCODE EINGEBEN / M=MENUE');.  WRITELN;. 
 READLN(CH);.  CASE CH OF.      'L': BEG
IN.           WRITELN('WELCHE ZEICHENKET
TE EINLESEN ?');.           READLN(CH);.
           CASE CH OF.           'X': RE
ADSTR(X);.           'Y': READSTR(Y);.  
         'Z': READSTR(Z);.           END
.           END;.      'W': BEGIN.      
     WRITELN('WELCHE ZEICHENKETTE AUSGEB
EN ?');.           READLN(CH);.         
  CASE CH OF.           'X': WRITESTR(X)
;.           'Y': WRITESTR(Y);.         
  'Z': WRITESTR(Z);.           END.     
      END;.      'C': CONCAT(X,Y,Z);.   
   'S': BEGIN.           WRITELN('BEGINN
 AN WELCHER POSITION ?');.           REA
DLN(P);.           WRITELN('WIEVIELE ZEI
CHEN ?');.           READLN(N);.        
   SUBSTR(X,P,N,Z).           END;.     
 'E': BEGIN.           WRITELN('AN WELCH
ER POSITION ?');.           READLN(P);. 
          INSERT(X,P,Y).           END;.
      'D': BEGIN.           WRITELN('AN 
WELCHER POSITION ?');.           READLN(
P);.           WRITELN('WIEVIELE ZEICHEN
 ?');.           READLN(N);.           D
ELETE(X,P,N).           END;.      'I': 
BEGIN.           P:=INDEX(X,Y);.        
   WRITELN(P).           END;.       'T'
: TRIM(X);.      'R': REVERT(X);.      '
M': MENUE;.       'Q':;.    END;.   UNTI
L CH = 'Q';.WRITELN('ENDE DES PROGRAMMES
').END..
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL