Soit un type énuméré TRomain=(M,D,C,L,X,V,I)
J'extrais d'un nombre en chiffre romains un caractère, donc M ou C ou ... I
Peut-on le transformer en TRomain d'une autre manière que par une boucle sur un tableau de correspondance ?
Voici le code :
je récupère ainsi dans lettre le type énuméré correspondant au caractère.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 type TRomain=(M,D,C,L,X,V,I); const romain:array[TRomain]of char=('M','D','C','L','X','V','I'); function RomainAdArabe(nbRomain:shortstring):cardinal; var lettre:TRomain; car:char; begin for k:=length(nbRomain) downto 1 do begin car:=((uppercase(nbRomain)[k])); for lettre:=M to I do if car=romain[lettre] then break; end;
Mais cela me paraît un peu lourd, non ?
Partager