Formats de chaîne (commande DATA LIST)
Les variables de chaîne (alphanumériques) peuvent contenir des chiffres, des lettres ou des caractères, y compris des caractères spéciaux et des blancs imbriqués. Les nombres entrés comme valeurs pour les variables de chaîne ne peuvent pas être utilisés dans les calculs sauf si vous les convertissez au format numérique (voir RECODE). Sous DATA LIST, une variable de chaîne est définie avec un format A si les données sont au format de caractères standard ou un format AHEX si les données sont au format hexadécimal.
- Pour les données à format fixe, la largeur d'une variable de chaîne est soit implicite par la spécification de l'emplacement de la colonne, soit spécifiée par le w sur le format de type FORTRAN. Pour les données de zone libre, la largeur doit être indiquée dans le format de type FORTRAN.
- Le format
AHEXest disponible uniquement pour les données à format fixe. Comme chaque ensemble de deux caractères hexadécimaux représente un caractère standard, la spécification de largeur doit être un nombre pair. Le format de sortie d'une variable au formatAHEXest le formatAavec la moitié de la largeur spécifiée. - Si une chaîne des données dépasse la largeur spécifiée, elle est tronquée et un message d'avertissement s'affiche. Si la chaîne dans les données est plus courte, elle est remplie à droite avec des blancs et aucun message d'avertissement ne s'affiche.
- Pour les données à format fixe, tous les caractères des colonnes spécifiées ou implicites, y compris les blancs de début, de fin et imbriqués et les signes de ponctuation, sont lus comme la valeur de la chaîne.
- Pour les données de zone libre sans délimiteur spécifié, les valeurs de chaîne dans les données doivent être placées entre guillemets si la chaîne contient un blanc ou une virgule. Sinon, le blanc ou la virgule est traité comme un délimiteur entre les valeurs. Pour plus d'informations, voir la rubrique Valeurs de chaîne dans les spécifications de commande .
Exemple
DATA LIST FILE="/data/wins.txt" FREE /POSTPOS NWINS * POSNAME (A24).
- POSNAME est spécifié sous la forme d'une chaîne de 24 octets. L'astérisque précédant POSNAME indique que POSTPOS et NWINS sont lus avec le format par défaut. Si l'astérisque n'a pas été spécifié, le programme applique le format
A24à POSNAME , puis émet un message d'erreur indiquant qu'il y a plus de variables que les formats spécifiés.
Exemple
DATA LIST FILE="/data/wins.txt" FREE /POSTPOS * NWINS (A5) POSWINS.
- POSTPOS et POSWINS reçoivent tous deux le format numérique par défaut
F8.2. - NWINS reçoit le format spécifié de
A5.
Largeur de chaîne dans les fichiers de page de codes, UTF-8et UTF-16
Les spécifications de colonne et de largeur pour les nombres sont les mêmes pour tous les codages. Chaque chiffre représente une seule colonne. Par exemple, une spécification de colonne VAR1 1-4 (F) ou une spécification de largeur VAR1 (F4) définit une largeur suffisamment large pour un nombre à 4 chiffres.
Pour les variables de chaîne, cependant, les spécifications de colonne et de largeur peuvent être différentes pour les différents codages.
- Pour les fichiers de page de codes et UTF-8 , les spécifications de colonne et de largeur pour les caractères alphabétiques représentent les octets.
- Dans les fichiers de pages de codes, les caractères latins (romains) sont chacun un octet. Cela inclut les caractères avec des signes diacritiques, tels que les accents. Par exemple, le CV et le CV ont tous deux une largeur de 6 octets (ou colonnes) dans un fichier de page de codes. Les caractères asiatiques, cependant, nécessitent deux octets pour chaque caractère.
- Dans les fichiers UTF-8 , les caractères latins sans signes diacritiques représentent chacun un octet, mais les caractères avec signes diacritiques requièrent deux octets. Par exemple, la reprise requiert une largeur de 6 octets alors que la reprise requiert une largeur de 8 octets.
- Les caractères des alphabets grec, cyrillique, copte, arménien, hébreu, arabe, syriaque et tana requièrent chacun deux octets dans les fichiers UTF-8 .
- Les caractères des alphabets asiatiques requièrent 3 octets ou plus pour chaque caractère dans les fichiers UTF-8 .
- Pour les fichiers UTF-16 , les spécifications de colonne et de largeur représentent des caractères. Par conséquent, chaque caractère requiert une colonne pour tous les alphabets.
Pour plus d'informations sur le codage Unicode, voir http://www.unicode.org.