Je dois comparer 2 variables d'un même type record assez long (plus de 200 champs, certains étant eux-mêmes des record dont certains assez gros aussi).
Or si on a :
1 2 3 4 5 6
| Type
Toto = record
end
Var
Var1, Var2 : Toto |
le test
If Var1=Var2 ne fonctionne pas.
J'ai essayé avec :
CompareMem (@Var1 , @Var2 , SizeOf(Toto )
Mais le type contient des réels, et cette comparaison échoue même si var1 et Var2 contiennent bien les mêmes données.
Je peux donc soit comparer 1 à 1 les centaines de champs du record et des sous-record, soit essayer de trouver un moyen de faire une itération sur lesdits champs et les comparer en fonction des types.
Ma question est donc : est-ce possible ?
Car j'ai eu beau chercher, je n'ai rien trouvé
Je ne peux évidemment pas modifier mon record ou le transformer en autre chose, étant donné que le programme a près de 30 ans et que ces structures viennent du Pascal et que la compatibilité avec les anciennes versions doit être maintenue.
Partager