テキストファイルのオープン設定をスクリプトに保存する方法こんにちは、
問題:
多数の.txtファイルがあります。 行7から無限大までの列4のデータのみを気にします。 多数の.txtファイルから列4のすべてのデータを抽出し、それらを1つのテーブルに連結したいと思います。 これを行うための最良の方法は何ですか? 理想的には、これを実行するスクリプトを作成したいと思います。
同じように、File-openメソッドを使用して(プレビューを使用して)データを含む.txtファイルを開くと、列4のデータを適切にフォーマットできますが、これらを検索または保存する方法がわかりません。 '設定。 スクリプトに保存して、同じ設定で他の.txtファイルを開くことができるようにします。
どうすればこれを行うことができますか?
参照用にサンプルの.txtファイルの1つを添付しました。
助けてくれてありがとう!
データ表スクリプティングRe:テキストファイルのオープン設定をスクリプトに保存する方法複数のファイルをインポートするのが道だと思います
ファイル=>複数のファイルをインポート
フォルダ内のすべてのファイルを読み込み、それらを連結します(必要な場合)。次に、必要なのは、不要な列を削除することだけです。
また、フォルダー全体、またはテストケースのいくつかのファイルを実行した後、データテーブルの左上のパネルの[ソース]エントリに移動し、それを右クリックして[編集]を選択すると、すべてのJSLが表示されます。スクリプトから実行する必要があります。
Re:テキストファイルのオープン設定をスクリプトに保存する方法申し訳ありませんが、目標を明確に説明していませんでした。 その提案は私に必要なものを与えてくれません。 また、concatenateコマンドではなくjoinコマンドを使用する必要があることにも気づきました。
39個の.txtファイルがあります。 各.txtファイルの4番目の列のデータのみが必要です。 そのデータを抽出して新しいテーブルに追加し、39個の個別の列(39個の.txtファイルすべての4番目の列ごとに1つ)を作成します。
Re:テキストファイルのオープン設定をスクリプトに保存する方法例として、サンプルファイルのコピーを4つ作成し、それらすべてをディスカッショングループフォルダーの下のフォルダーに配置しました。
Documents\Discussion Group\textfile
それから私は行きました
ファイル=>複数のファイルをインポート

「ファイル名列を追加」のチェックボックスを選択しました
次に「設定」をクリックしました

「ヘッダーあり」のチェックを外しました
「FirstDataLine」を7に変更しました
[フィールドの終わり]ボックスの[カンマ]をオフにして、[スペース]をオンにしました
[OK]をクリックしました
インポートをクリックしました
Col1-Col6列とFileName列で開かれたデータテーブル

必要な列はCol5列とファイル名だけなので、他のすべての列を削除します

これで、4つの入力ファイルのデータを列に分割するだけで済みます。
に移動
テーブル=>分割

「分割」列として「ファイル名」を選択します
「列の分割」列として列5を選択します
[OK]をクリックします
新しいテーブルには、入力ファイルごとに1つの列があります

これは、必要なテーブルの最終的な形式である必要があります。列の名前は任意の名前に変更できます。
Re:テキストファイルのオープン設定をスクリプトに保存する方法OpenMultipleファイルを表示してくれたJimに感謝します。 とてもパワフルなようです。 不思議なことに、私はこれを使用したことがありません。おそらく、このようなスクリプトタスクの古い習慣が原因です。
すべてのファイルの行数がまったく同じである場合、以下のスクリプトは同じ最終テーブルを提供するはずです。
Names Default To Here( 1 );
path = "path to directory of text files";
files = Files In Directory( path );
open_expr = Expr(
dt = Open(
path || Expr( files[i] ),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Spaces, CSV( 0 ) ),
Data Starts( 7 ),
Lines To Read( "All" )
),
private
)
);
M = []; //Matrix to hold data from multiple files
L = {}; // List of imported file names
For( i = 1, i <= N Items( files ), i++,
If( Ends With( files[i], ".txt" ),
Eval( Eval Expr( open_expr ) );
Insert Into( L, files[i] );
M ||= dt[0, 5]; // Add column 4 (5 becaue of fronting spaces in files)
Close( dt, no save );
)
);
// Make into table
dt = As Table( M, <<COLUMN names=""></COLUMN>