Bonjour,
si je tape A dans un Edit1, le test IntToStr(Length(Edit1.Text)); me retourne 1.
Et si je tape <CTRL><MAJ>u00c0<ESPACE> pour faire afficher À, le test me retourne 2.
Vous voyez 2 caractères, vous ?
Env. : Laz 1.0.10, FPC 2.6.2, Debian Wheezy 32 bits.
Quelqu'un pourrait tester avec une 1.0.12 et/ou FPC 2.7 et/ou 64 bits ?
Merci pour vos retours de tests, pour vos idées, et bon week-end,
EDIT : et y a plus grave ! Le code pour les trois points de suspension (qui compte pour 1 seul caractère, en typographie : …), me retourne 3.
Vous pouvez tester avec <CTRL><MAJ>u2026<ESPACE>
Par ailleurs, un test en console sous Bash fonctionne bien :D'autant plus curieux qu'un code en C retourne les mêmes erreurs que Lazarus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #!/bin/bash tst=$1 echo $tst echo ${#tst}Sorties :
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include <stdio.h> #include <string.h> int main(int argc, char **argv) { int arg; for (arg = 0; arg < argc; arg++) { if (argv[arg] [0] == '-') printf("option : %s\n", argv[arg] + 1); else printf("argument %d: %s\n", arg, argv[arg]); printf("longueur : %d\n", strlen(argv[arg])); } return 0; }
# ./testarg 'À'
argument 0: ./testarg
longueur : 9
argument 1: À
longueur : 2
# ./testarg '…'
argument 0: ./testarg
longueur : 9
argument 1: …
longueur : 3
# ./testarg '•'
argument 0: ./testarg
longueur : 9
argument 1: •
longueur : 3
# ./testarg 'A'
argument 0: ./testarg
longueur : 9
argument 1: A
longueur : 1
Partager