複数のファイルを開いて、すべてのテーブルの列の名前を変更する同じ種類の複数のファイルを選択し、それらを開いて列の名前を変更するオプションをユーザーに提供するスクリプトがあります。 ファイルを選択して開くことは正常に機能しますが、列の名前を変更することが問題になります。 以下は私がこれまでに持っているものです。
Names Default To Here( 1 );
Files = Pick File(
"Select File(s)",
"C:\Users\dkraeuter\Desktop\Temp\Test",
{"All Files|*"},
1,
0,
"",
"multiple"
);
y = {"Test", "Run", "Model"};
For( i = 1, i <= N Items( Files ), i++,
Try( Open( Files[i], "text" ) );
dt = Current Data Table() // Use Current Data Table;
For( n = 1, n < 56, n++,
:Column( n ) << Set Name( y[n] )
);
);
Re: 複数のファイルを開いてすべてのテーブルの列の名前を変更するログにエラーが記録されていますか?
Re: 複数のファイルを開いてすべてのテーブルの列の名前を変更するこんにちは、ジムさん、以下のことを手伝っていただけませんか:
インポートしているデータテーブルが 2 つあり、両方の列の名前を変更したい場合はどうすればよいでしょうか...以下のスクリプトのセクションは機能しませんか? そのままでは、一方のテーブルの列の名前が変更されるだけで、もう一方のテーブルの列名は変更されません。
dt1 = データテーブル(1);
dt1 << select where( :Result_Valid != 1 );
dt1 << 非表示にして除外します。
dt1 << 除外を選択;
dt1 << 行を削除します。
dt1 << セット名 ("データ 2");
dt1 << 列の削除( "部品番号", "一意の ID");
dt1 << Text To Columns(delimiter( "_" ),columns( :ファイル名 ),);
dt1 = :ファイル名 1 << 名前を設定 (「実行時」);
dt1 = :ファイル名 2 << set name ("Dimension");
dt1 = :ファイル名 3 << set name ("データ型");
dt2 = データテーブル(2);
dt2 << select where( :Result_Valid != 1 );
dt2 << 非表示にして除外します。
dt2 << 除外を選択;
dt2 << 行を削除します。
dt2 << セット名 ("データ 1");
dt2 << 列の削除( "部品番号", "一意の ID");
dt2 << Text To Columns(delimiter( "_" ),columns( :ファイル名 ),);
dt2 = :ファイル名 1 << 名前を設定 (「実行時」);
dt2 = :ファイル名 2 << set name ("Dimension");
dt2 = :ファイル名 3 << set name ("データ型");
Re: 複数のファイルを開いてすべてのテーブルの列の名前を変更するY リストには 49 個の要素しか含まれていませんが、56 個の要素に行こうとしています。もう 1 つの可能性は、読み取っている 50 データ テーブルが初めて 49 列を超えているということです。コード内でそれを確認し、49 列のみをループするか、データ テーブルの列が少ない場合は列数を 1 だけループする必要があります。
Re: 複数のファイルを開いてすべてのテーブルの列の名前を変更するスクリプトを使用しているのですが、問題が発生しました。 「n」の値が 50 を超えると、選択されたファイルの数に関係なく、1 つのファイルが開かれ、列の名前が変更されます。 ログに表示されるエラーは次のとおりです: 'y[n]' 、 y[/*###*/n] のアクセスまたは評価における添字範囲。
これが私の現在のスクリプトです。
Names Default To Here( 1 );
Files = Pick File(
"Select File(s)",
"C:\Users\dkraeuter\Desktop\Temp\Azure",
{"All Files|*"},
1,
0,
"",
"multiple"
);
y = {"Blank", "Feed Step 2", "Cycle Stopped", "Spindle Speed 1", "Spindle Speed 2", "Number of Stones",
"Percent of Surface Interuptions", "Honing Time ", "Tool Type", "Fault Code", "Serial Number", "Feed Force 1",
"Feed Force 2", "Bore Compensation", "Feed Position at Bore", "Feed Position at End", "Feed Position at Target",
"Wedge Angle", "Part Count", "Setup Name", "Part Material", "Part Hardness", "Stone Type", "Stone Length",
"Stone Width", "Coolant Type", "Cycle Run Status", "Cycle Stone Condition", "Cycle Incoming Condition",
"Machine Model", "Stroke Speed 1", "Stroke Speed 2", "Feed Rate 1", "Feed Rate 2", "Stroke Length", "Bore Length",
"VSRR Calc", "Average Torq Spindle", "Average Torq Stroker", "Average Torque Feed", "Average Feed Force",
"Average Part Torque", "Target Final Diameter", "Surface Finish Ra", "Surface Finish Rz", "Surface Finish Rt",
"1", "2", "3"};
For( i = 1, i <= N Items( Files ), i++,
Try( dt = Open( Files[i], "text" ) );
Wait( 0 );
For( n = 1, n < 56, n++,
Column( dt, n ) << Set Name( y[n] )
);
);Re: 複数のファイルを開いてすべてのテーブルの列の名前を変更する私が見つけたエラーは次のとおりです
1. デフォルトのディレクトリへのパスが見つかりませんでした。そこで、私が持っていることがわかっているフォルダーを指すように修正したところ、ファイルの選択は正常に機能しました
2.「;」が抜けていました。 「y =」ステートメントの最後に。それが修正されると、コードは正しく解析されるようになりました。
3. Column() 関数は、:Name() 関数とは異なります。先頭に「:」がありません。
4. 「dt = current data table():」も削除しました。Open()関数の結果として配置することで設定が不要になります。
5. データテーブルに Column() 関数への参照も追加しました。これは Column() 関数を指定する最も正式な方法であり、関数がどの列を指しているのかという質問を避けることができます。
6. Wait( 0 );単なる安全上の予防措置です。これにより、For() ループが実行される前にデータ テーブルが完全に読み取られることが保証されます。あなたも使用したいかもしれません
dt << run formulas;
また、データテーブルが実行されていることも確認します。
あなたのコードの私のバージョンは次のとおりです。
Names Default To Here( 1 );
Files = Pick File( "Select File(s)", "C:\Users\<YOUR logonid="">", {"All Files|*"}, 1, 0, "", "multiple" );
y = {"Test", "Run", "Model"};
For( i = 1, i <= N Items( Files ), i++,
Try( dt = Open( Files[i], "text" ) );
wait( 0 );
For( n = 1, n < 56, n++,
Column( dt, n ) << Set Name( y[n] )
);
);</YOUR>
Re: 複数のファイルを開いてすべてのテーブルの列の名前を変更する私のエラーは、認識できない「;」について何かを述べています。または ")"。 私の知る限り、それはForループの直後のopenコマンドと関係があります。 Open コマンドをコメントアウトすると、2 番目の for ループは問題ないようです。
55 は、名前を変更する実際の列の数から来ています。 再投稿したときに、リストした列名の合計数を変更しましたが、許可される合計 "n" 数を変更するのを忘れていました。
Re: 複数のファイルを開いてすべてのテーブルの列の名前を変更するログにはどのようなエラー メッセージが記録されますか?私の推測では、添字が範囲外であることを示していると思います。変数「n」を 1 から 55 までループし、変数「y」を参照しています。「n」が 4 になるとすぐに、「y」リスト内の値が不足します。