Ho modificato il JSL in modo che dopo aver creato la tabella dati come nella mia risposta iniziale, rileggo il file .txt e leggo le unità. Quindi aggiunge le unità come Proprietà colonna alle colonne nella tabella dati completa.
Nota: le unità non fanno parte del nome della colonna. Sono una proprietà della colonna. Tuttavia, le unità saranno visualizzate automaticamente con la colonna.
ilFile = //"
"L:\Documenti\Gruppo di discussione/cschultz32.txt";
dt = Apri(ilFile,
Impostazioni di importazione (
Fine riga (CRLF, CR, LF),
Fine del campo (Spazi, Spazio, CSV (0)),
Tratta gli zeri iniziali come caratteri (1),
Citazioni di striscia (1),
Usa l'apostrofo come virgoletta (0),
Usa le impostazioni regionali (0),
Scansiona l'intero file (1),
Tratta le colonne vuote come numeriche (0),
ComprimiColonneNumeriche( 0 ),
ComprimiColonneCaratteri( 0 ),
ComprimiAllowListCheck( 0 ),
Etichette (1),
Nomi delle colonne Inizio( 4 ),
Prima colonna denominata (1),
Inizio dei dati (6),
Righe da leggere ("Tutte"),
Regola dell'anno ("20xx")
)
);
dt << select where( Manca( Num( :sampleID ) ) == 1 | Manca( Num( :density ) ) );
dt << elimina righe;
colNames = dt << ottieni i nomi delle colonne (stringa);
Per( i = N Elementi( colNames ), i >= 1, i--,
col = colNames[i];
Colonna( col ) << imposta tipo di dati( numerico ) << imposta tipo di modellazione( continuo );
Se(Col Numero(Come Colonna(col)) == 0,
dt << elimina colonne( col )
);
);
// Leggi le unità e applicale
dtUnits = Apri(ilFile,
Impostazioni di importazione (
Fine riga (CRLF, CR, LF),
Fine del campo (Spazi, Spazio, CSV (0)),
Tratta gli zeri iniziali come caratteri (1),
Citazioni di striscia (1),
Usa l'apostrofo come virgoletta (0),
Usa le impostazioni regionali (0),
Scansiona l'intero file (1),
Tratta le colonne vuote come numeriche (0),
ComprimiColonneNumeriche( 0 ),
ComprimiColonneCaratteri( 0 ),
ComprimiAllowListCheck( 0 ),
Etichette (1),
Nomi delle colonne Inizio( 4 ),
Prima colonna denominata (1),
Inizio dei dati (5),
Righe da leggere ("Tutte"),
Regola dell'anno ("20xx")
)
);
dtUnits << seleziona dove(riga()>1);
dtUnits << elimina righe;
colNames = dt << ottieni i nomi delle colonne (stringa, numerico);
Per ogni( {col}, colNames,
unità = Colonna( dtUnità, col )[1];
Se(Manca(unità) == 0,
unità = Sostituisci( unità, "(", "", ")", "" );
Eval( Eval Expr( Colonna( dt, col ) << imposta proprietà( "unità", Expr( unità ) ) ) );
);
);
close( dtUnits, nosave );