リストから複数のテーブルを結合するここでスクリプトを使用して私は任意のフォルダからテーブルのリストを取得することができます。作成したリストからテーブルに参加できるようにしたいです。どの列を結合に使用するかというプリセットを使用して、ユーザーがどの表を結合できるかを選択できるようにしたいです。
パス= Pick Directory( "Analyticsデータディレクトリの選択");
Files_All =ディレクトリ内のファイル(パス)。
NFS_All = N個のアイテム(Files_All)。
ファイル= {};
//テキスト以外のファイルを削除します
(f = 1、f ((Files_All [f]、"。txt")が0より大きい場合)
に挿入(Files、Files_All [f]);
;
;
//個々のファイルを選択するように促す
List_NPr = {};
List_Pr = Files;
PromptF =新しいウィンドウ( "ファイルの選択"、<<モーダル、
Vリストボックス(
テキストボックス( "Select Desired Files")、
テキストボックス(" ")、
Hリストボックス(
Vリストボックス(
テキストボックス(「処理するファイル」)、
Pr =リストボックス(List_Pr、width(350)、nlines(30))、
ボタンボックス( ">>>>選択を解除>>>>"、
List_NPr =連結(List_NPr、Pr <<選択されたもの));
List_Pr = remove(List_Pr、Pr <<選択インデックスの取得);
Pr <<設定項目(List_Pr);
NPr << Set Items(List_NPr);
)、
テキストボックス(" ")、
Vリストボックス(
テキストボックス(「除外されたファイル」)、
NPr =リストボックス(List_NPr、width(350)、nlines(30))、
ボタンボックス( "<<<<選択したものを追加<<<<"、
List_Pr = concat(List_Pr、NPr << Get Get);
List_NPr = remove(List_NPr、NPr <<選択インデックスの取得);
Pr <<設定項目(List_Pr);
NPr << Set Items(List_NPr);
))));
待つ(0)。
Files = List_Pr;
NFS = N項目(ファイル)。
;
リストから複数のテーブルを結合するそれであなたの質問は何ですか?スクリプトの最後の行に余分な右括弧があり、最終的なリストをキャプチャしていません。
ここにあなたのJSLを修正します。 FListはユーザーが選択したファイルを含みます。 最後の行は最終選択を示しています。 今度は結合を台本を書かなければならない。
Path = Pick Directory( "Select Analytics Data Directory" );
Files_All = Files In Directory( Path );
NFS_All = N Items( Files_All );
Files = {};
//Remove non-text files
For( f = 1, f < NFS_All + 1, f++,
If( Contains( Files_All[f], ".txt" ) > 0,
Insert Into( Files, Files_All[f] )
)
);
//Prompt to select individual files
List_NPr = {};
List_Pr = Files;
PromptF = New Window( "File Selection",
<<MODAL>>>> Remove Selected >>>>",
List_NPr = Concat( List_NPr, Pr << Get Selected );
List_Pr = Remove( List_Pr, Pr << Get Selected Indices );
Pr << Set Items( List_Pr );
NPr << Set Items( List_NPr );
FList = List_Pr;
)
),
Text Box( " " ),
V List Box(
Text Box( "Files Excluded:" ),
NPr = List Box( List_NPr, width( 350 ), nlines( 30 ) ),
Button Box( "<<<< Add Selected <<<<",
List_Pr = Concat( List_Pr, NPr << Get Selected );
List_NPr = Remove( List_NPr, NPr << Get Selected Indices );
Pr << Set Items( List_Pr );
NPr << Set Items( List_NPr );
FList = List_Pr;
)
)
)
)
);
Wait( 0 );
Files = List_Pr;
NFS = N Items( Files );
show(FList);</MODAL>リストから複数のテーブルを結合するありがとうございました!
私は実際にそれを考え出しました。
誰かがそれを望むならば、ここに私の賛辞があります。
Clear Globals();
Clear Symbols();
Main Menu("Minimize All");
//Set text export preferences
//Preferences(Export Settings(Export Table Headers));
//Preferences(Export Settings(End of Field(Tab)));
//Initial prompt to select split level
Prompt = New Window ("Output Selection", <<MODAL> 0,
Insert Into(Files,Files_All[f]);
);
);
//Prompt to select individual files
List_NPr = {};
List_Pr = Files;
PromptF = New Window("File Selection", << Modal,
V List Box(
Text Box ("Select Desired Files"),
Text Box(" "),
H List Box(
V List Box(
Text Box("Files to join:"),
Pr = List Box(List_Pr, width(350), nlines(30)),
Button Box(">>>> Remove Selected >>>>",
List_NPr = concat(List_NPr, Pr << Get Selected);
List_Pr = remove(List_Pr, Pr << Get Selected Indices);
Pr << Set Items(List_Pr);
NPr << Set Items(List_NPr);
)),
Text Box(" "),
V List Box(
Text Box("Files Excluded:"),
NPr = List Box(List_NPr, width(350), nlines(30)),
Button Box("<<<< Add Selected <<<<",
List_Pr = concat(List_Pr, NPr << Get Selected);
List_NPr = remove(List_NPr, NPr << Get Selected Indices);
Pr << Set Items(List_Pr);
NPr << Set Items(List_NPr);
)))));
wait(0);
Files = List_Pr;
NFS = N Items(Files);
// table that others join
Fullpath = Path||Files[1];
DT_old = Open( Fullpath,private);
DT_old << Minimize Window;
//loop to join other tables
For (a=2, a < NFS+1, a++,
Fullpath = Path||Files[a];
DT_new = Open( Fullpath,private);
DT_new << Minimize Window;
join_name = "Limits" || char(a);
dt_old << join( with(data table(dt_new)),
Merge Same Name Columns,
By Matching Columns(
:A = :A,
:B = :B,
:C = :C,
),
Drop multiples( 1, 0 ),
Name( "Include non-matches" )(1, 1),
Output Table( join_name )
);
close(dt_old, nosave);
dt_old = data table(join_name);
);
</MODAL>リストから複数のテーブルを結合するあなたの解決策を「解決策」としてマークしてください。 私もイアンを解決策としてマークするでしょう。