こんにちは、
データテーブルの列から来る値のベクトルを作りたい。 これらの値のいくつかは数字ゼロで始まります。 parseコマンドを使用すると、数値の先頭からゼロが切り捨てられます。 列は文字列として定義されています。 私が使用しているスクリプトはevalです(parse(column(DTI、"bar_pen")[i])))。これをどのようにして最初のゼロを維持することができますか?
ありがとう、
トバ
おかげで、それは私が見つけたものよりもはるかにきれいな解決策です...
dt = New Table( "Untitled",
Add Rows( 3 ),
New Column( "Bar_Pen", Character, Set Values( {"0001", "9999", "0900"} ) )
);
list = dt:Bar_pen << getvalues;
show(list); // {"0001", "9999", "0900"};
v = dt:Bar_Pen[3];
show(v, parse(v), char(parse(v))); // "0900", 900, "900"
あなたは文字データをコードに変換する解析をする必要はないかもしれません(たぶん数です。)そしてあなたは解析されたコードを評価する必要はなく、そしてあなたは評価された答えを変換する必要はありません。文字列に戻ります。データ入力エラーのために値をクリーンアップする必要がある場合、eval / parseは機能しているように見えますが、悪意のあるユーザーがテーブルに不適切なコードを入れた場合は失敗します。
これが最終的に私のために働いたものです:
繰り返し( "0"、長さ4 - (char(eval(parse(column(DTI、"Bar_Pen")[i])))))|| char(eval(parse(column(DTI、"Bar_Pen")[i])));