1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59:
| function zahlrtoa(zahl1: string): string; var buchstaben: array [1 .. 13] of string; zahlen: array [1 .. 13] of integer; x, y: byte; zahl: cardinal; begin zahlen[1] := 1000; zahlen[2] := 900; zahlen[3] := 500; zahlen[4] := 400; zahlen[5] := 100; zahlen[6] := 90; zahlen[7] := 50; zahlen[8] := 40; zahlen[9] := 10; zahlen[10] := 9; zahlen[11] := 5; zahlen[12] := 4; zahlen[13] := 1; buchstaben[1] := 'M'; buchstaben[2] := 'CM'; buchstaben[3] := 'D'; buchstaben[4] := 'CD'; buchstaben[5] := 'C'; buchstaben[6] := 'XC'; buchstaben[7] := 'L'; buchstaben[8] := 'XL'; buchstaben[9] := 'X'; buchstaben[10] := 'IX'; buchstaben[11] := 'V'; buchstaben[12] := 'IV'; buchstaben[13] := 'I'; x := 0; zahl := 0; repeat inc(x); repeat if (pos(buchstaben[x], zahl1) <> 0) and (pos(buchstaben[x + 1], zahl1) = 0) then begin y := pos(buchstaben[x], zahl1); zahl := zahl + zahlen[x]; delete(zahl1, y, 1); end else begin repeat inc(x); y := pos(buchstaben[x], zahl1); zahl := zahl + zahlen[x]; delete(zahl1, y, length(buchstaben[x])); dec(x) until pos(buchstaben[x], zahl1) = 0; end; until pos(buchstaben[x], zahl1) = 0; until zahl1 = ''; zahlrtoa := inttostr(zahl); end; |