" sont : initialisées avec le caractère de code 0 – Caract(0), complétées avec des espaces à chaque affectation suivante, et utilisent une zone mémoire de caractères. Les "chaînes sur " sont : initialisées avec des 0 – Caract(0), complétées avec des 0 binaire à chaque affectation suivante, et utilisent une zone mémoire de caractères. Le type "chaînes sur" doit être privilégié car il est disponible..." />
08 mars 2012
publié par 
Les "chaînes fixes sur <N>" sont :
  • initialisées avec le caractère de code 0 – Caract(0),
  • complétées avec des espaces à chaque affectation suivante,
  • et utilisent une zone mémoire de <N> caractères.

Les "chaînes sur <N>" sont :
  • initialisées avec des 0 – Caract(0),
  • complétées avec des 0 binaire à chaque affectation suivante,
  • et utilisent une zone mémoire de <N+1> caractères.

Le type "chaînes sur" doit être privilégié car il est disponible en Ansi et en Unicode, contrairement au type "chaînes fixes sur" qui n'est disponible qu'en Ansi. Pour cette raison, à partir de la version 17 de WINDEV, l'éditeur de code affiche le warning suivant si une variable "chaîne fixe sur" est déclarée dans un traitement :

Warning : Les types chaîne Fixe et Pascal sont conservées pour compatibilité avec les versions précédentes.

De par les caractéristiques de ces types, il est donc possible de remplacer une "chaîne fixe sur N", par une "chaîne sur N-1". Par exemple, la déclaration :
sMessage est une chaîne fixe sur 128

sera remplacée par :
sMessage est une chaîne sur 127

Dans le cas où le traitement s'appuyait sur les espaces que pouvait contenir une "chaîne fixe sur", il reste tout à fait possible de conserver la "chaîne fixe sur", du moment que la compilation reste en Ansi. Dans ce cas le warning peut être ignoré par un clic droit.

< Retour