J'ai modifié le JSL de telle sorte qu'après la création de la table de données, comme indiqué dans ma réponse initiale, je relis le fichier .txt pour lire les unités. Les unités sont ensuite ajoutées comme propriétés de colonne aux colonnes de la table de données complète.
Remarque : Les unités ne font pas partie du nom de la colonne. Elles sont une propriété de la colonne. Cependant, elles seront automatiquement affichées avec la colonne.
leFichier = //"
"L:\Documents\Groupe de discussion/cschultz32.txt";
dt = Ouvrir( leFichier,
Paramètres d'importation (
Fin de ligne (CRLF, CR, LF),
Fin de champ (espaces, espace, CSV (0)),
Traiter les zéros non significatifs comme des caractères (1),
Citations de bandes dessinées (1),
Utilisez l'apostrophe comme guillemet (0),
Utiliser les paramètres régionaux (0),
Analyser le fichier entier (1),
Traiter les colonnes vides comme numériques (0),
Compresser les colonnes numériques (0),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Étiquettes( 1 ),
Noms de colonnes Début( 4 ),
Première colonne nommée (1),
Les données commencent (6),
Lignes à lire (« Toutes »),
Règle de l'année (« 20xx »)
)
);
dt << select where( Manque( Num( :sampleID ) ) == 1 | Manque( Num( :density ) ) );
dt << supprimer les lignes ;
colNames = dt << obtenir les noms de colonnes( chaîne );
Pour( i = N éléments( colNames ), i >= 1, i--,
col = colNames[i];
Colonne( col ) << définir le type de données( numérique ) << définir le type de modélisation( continu );
Si( Numéro de colonne( Comme colonne( col ) ) == 0,
dt << supprimer les colonnes( col )
);
);
// Lisez les unités et appliquez-les
dtUnits = Open( leFichier,
Paramètres d'importation (
Fin de ligne (CRLF, CR, LF),
Fin de champ (espaces, espace, CSV (0)),
Traiter les zéros non significatifs comme des caractères (1),
Citations de bandes dessinées (1),
Utilisez l'apostrophe comme guillemet (0),
Utiliser les paramètres régionaux (0),
Analyser le fichier entier (1),
Traiter les colonnes vides comme numériques (0),
Compresser les colonnes numériques (0),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Étiquettes( 1 ),
Noms de colonnes Début( 4 ),
Première colonne nommée (1),
Les données commencent (5),
Lignes à lire (« Toutes »),
Règle de l'année (« 20xx »)
)
);
dtUnits << sélectionnez où(ligne()>1);
dtUnits << supprimer les lignes ;
colNames = dt << obtenir les noms de colonnes( chaîne, numérique );
Pour chaque( {col}, colNames,
unités = Colonne( dtUnits, col )[1];
Si( unités manquantes ) == 0,
unités = Substituer( unités, "(", "", ")", "" );
Eval( Eval Expr( Column( dt, col ) << set property( "unités", Expr( unités ) ) ) );
);
);
fermer( dtUnits, nosave );