Ich habe die JSL so geändert, dass nach dem Erstellen der Datentabelle, wie in meiner ersten Antwort, die TXT-Datei erneut gelesen und die Einheiten gelesen werden. Anschließend werden die Einheiten als Spalteneigenschaften den Spalten in der vollständigen Datentabelle hinzugefügt.
Hinweis: Die Einheiten sind nicht Teil des Spaltennamens. Sie sind eine Spalteneigenschaft. Die Einheiten werden jedoch automatisch mit der Spalte angezeigt.
dieDatei = //"
"L:\Dokumente\Diskussionsgruppe/cschultz32.txt";
dt = Öffnen( dieDatei,
Importeinstellungen(
Zeilenende (CRLF, CR, LF),
Feldende(Leerzeichen, Leerzeichen, CSV( 0 ) ),
Führende Nullen als Zeichen behandeln ( 1 ),
Strip-Zitate (1),
Verwenden Sie Apostroph als Anführungszeichen ( 0 ),
Regionale Einstellungen verwenden( 0 ),
Ganze Datei scannen( 1 ),
Leere Spalten als numerisch behandeln ( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Etiketten( 1 ),
Spaltennamen Start( 4 ),
Erste benannte Spalte ( 1 ),
Datenstarts ( 6 ),
Zu lesende Zeilen( "Alle" ),
Jahresregel( "20xx" )
)
);
dt << auswählen, wobei (fehlt (Num(:Beispiel-ID)) == 1 | fehlt (Num(:Dichte)));
dt << Zeilen löschen;
colNames = dt << Spaltennamen abrufen (Zeichenfolge);
Für (i = N Elemente (Spaltennamen), i >= 1, i--,
col = colNames[i];
Spalte (col) << Datentyp festlegen (numerisch) << Modellierungstyp festlegen (kontinuierlich);
Wenn (Spaltennummer (als Spalte (Spalte)) == 0,
dt << Spalten löschen(Spalte)
);
);
// Einheiten einlesen und anwenden
dtUnits = Öffnen( dieDatei,
Importeinstellungen(
Zeilenende (CRLF, CR, LF),
Feldende(Leerzeichen, Leerzeichen, CSV( 0 ) ),
Führende Nullen als Zeichen behandeln ( 1 ),
Strip-Zitate (1),
Verwenden Sie Apostroph als Anführungszeichen ( 0 ),
Regionale Einstellungen verwenden( 0 ),
Ganze Datei scannen( 1 ),
Leere Spalten als numerisch behandeln ( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Etiketten( 1 ),
Spaltennamen Start( 4 ),
Erste benannte Spalte ( 1 ),
Datenstarts ( 5 ),
Zu lesende Zeilen( "Alle" ),
Jahresregel( "20xx" )
)
);
dtUnits << wählen Sie, wo (Zeile ())>1;
dtUnits << Zeilen löschen;
colNames = dt << Spaltennamen abrufen (Zeichenfolge, numerisch);
Für jedes ( {col}, colNames,
Einheiten = Spalte( dtUnits, col )[1];
Wenn (fehlt (Einheiten) == 0,
Einheiten = Ersetzen (Einheiten, "(", "", ")", "" );
Eval(Eval Expr(Spalte(dt, col) << setze Eigenschaft("Einheiten", Expr(Einheiten))));
);
);
schließen(dtUnits, nosave);