Bonjour
affiche 1 , semblant indiquer que 1 est supérieur à 12,8.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 var A, B: string; begin A := '2'; B := '12,8'; ShowMessage(CompareStr(A, B).ToString);
Je sais, la comparaison se fait sur chaque caractère, donc 2 est bien supérieur à 1.
Dans mes comparaisons, à chaque fois, j'ajoute autant de 0 que nécessaire pour avoir 2 chaînes de longueurs identiques afin d'avoir une comparaison logique (dans mon cas précis) (un peu lourd).
L'autre solution serait de convertir en valeurs numériques mais là aussi ce serait un peu lourdingue.
Est-ce qu'il n'y aurait pas une astuce ou une option de compilation pour que, dans ce bloc de code, Delphi tienne aussi compte de la longueur de la chaîne ?
B étant de longueur supérieure à celle de A, il déduirait que B est forcément supérieur.
Et si les chaînes sont de longueurs égales, il prendrait en compte les caractères un par un.
Partager