x 値と y 値をテキスト ファイルから jmp テーブルにインポートしますこんにちは、
テキスト ファイルの各行を読み取り、各文字列を jmp データ テーブルの個別の行としてインポートします。
高度な統計モデリングデータアクセスマスカスタマイゼーションRe: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するありがとうジャーモ。
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するこれは、連想配列を使用してウェーハに関する情報を保存し、テキスト ファイルから jmp テーブルを構築する完全な例です。
もっと見る...
また、「.」の場合、JMP が値ラベルで正しく動作しないように見えることにも気付きました。ラベルが付けられている値の 1 つです。 時間ができたらバグとして報告します
もっと見る...
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
New Column("Column 1",
Character,
"Nominal",
Value Labels({"." = "MISSING", "A" = "AAA", "B" = "BBB", "C" = "CCC"}),
Use Value Labels(1),
Set Selected,
Set Values({"A", "B", ".", "C"})
)
);
名前のデフォルトはここ(1)です。 dt = 新しいテーブル("無題", 行の追加(4), 新しい列("列 1", 文字, "公称", 値ラベル({"." = "欠落", "A" = "AAA", " B" = "BBB", "C" = "CCC"})、値ラベルを使用(1)、選択項目を設定、値を設定({"A", "B", ".", "C"}) ) ;
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する繰り返しになりますが、スクリプト インデックスと jmp ヘルプを使用することを思い出してください。 これらは通常、このタイプの JMP スクリプトを学習するのに最適なリソースです。
Names Default To Here(1);
example_str = "\[
WAFER_MAP = {
WAFER_ID = "ABC"
A B C = 123
]\";
example_list = Words(example_str, "\!N");
Show(example_list);
Remove From(example_list, 1); // drop first index. Why it is fine in this case?
// loop over lines until "MAP = {" I'll just use hardcoded index for example
// I'll also save values to variables
// but associative array would be better in this case
wafer_id_line = example_list[1];
Show(wafer_id_line);
wafer_id = Word(2, wafer_id_line, "="); // you might have to remove extra quotes
show(wafer_id);
example_aa = Associative Array();
//adding values to associative array could be done with something like
example_aa["WAFER_ID"] = Word(2, wafer_id_line, "="); // you might have to remove extra quotes
show(example_aa);
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する編集案を送信していただきありがとうございました。 @jthi私に欠けていたものを教えてくれて。 私は近くにいることを知っていました。 参考にしたいのでコード例を共有していただけますか? 私はまだ弦で遊ぶ方法を学んでいます
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する他の情報も必要な場合は方法を変更します。 ファイル内のデータには各行に新しいデータがあるため (ウェーハマップを除く)、Words() を使用し、行変更時に分割します (それでも、Words() が生成するリストから Contains を使用してウェーハマップが開始されるタイミングを探すことができますが、文字列ではなくリスト内のインデックスです)。 次に、情報を連想配列に追加して、アクセスを容易にします (これには、いくつかのループと Words() の使用量が必要になります)。
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するあなたの調子が良いといいのですが@jthi 、!
このディスカッションに関する本当に簡単な質問-
また、txt ファイルからヘッダー情報を含むすべての文字列を jmp データ テーブルにインポートしたいと考えています。 最終的なデータ テーブルにはすべての文字列が含まれ、各文字は個別の単語として扱われる必要があります。 このように見えるはずです。

あなたが提案したロジックは、行 13 以降は機能しません。 助けていただければ幸いです
map_str =
"\[
WAFER_MAP = {
WAFER_ID = ""
BIN G = "Passing"
MAP = {
.....GGG.....
....BGGGG....
...BGGGGGG...
..GGGGGGGGG..
.GGGGGGBBGGG.
GGGGGGGBBGGGB
GGGGGGGGGGGGB
GGGGGGGGGGGGB
.GGGGGGGGGGG.
..GGGGGGGGG..
...GGGGGGG...
....GGGGG....
.....GGG.....
}
}
]\";
l = Words( map_str, "\!N" );
rowc = N Items( l );
colc = N Items( Words( l[1], "" ) );
dt = New Table( "Summary Bins",
Add Rows( rowc * colc ),
New Column( "X coord", Numeric, Ordinal ),
New Column( "Y coord", Numeric, Ordinal ),
New Column( "Bins", Character, Nominal, Label( 1 ) )
);
Try(
For Each( {line, idx}, l,
cur_rows = ((idx - 1) * colc :: (idx * colc - 1)) + 1;
dt[cur_rows, "X coord"] = ((1 :: colc))`;
;
dt[cur_rows, "Y coord"] = (J( 1, colc ) * (idx))`;
dt[cur_rows, "Bins"] = Words( line, "" );
)
);御時間ありがとうございます!
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するContains を使用して、最初の "MAP = {" をスキップするか、最後から検索することができます (スクリプト インデックスを読み取る...)。

Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する@jthi
" を含む文字列が 2 つあります。 MAP = {" が以下で強調表示されています:

&ステートメントを使用して最初のものを選択しないようにしようとしましたが、機能しません。
demo_str = Load text file("New wafer map.txt");
a = Contains(demo_str,"MAP = {") & Contains(demo_str,"WAFER_MAP = {") ==0; // get the location of the string "MAP ={"
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する「MAP = {」を使用して Contains を試すことができます。 これにより、文字列内の「MAP = {」の位置が得られ、その知識を Substr で使用して必要な情報を取得できるはずです。 また、Substr (およびその他の関数) がどのように機能するかを理解するには、スクリプト インデックス (および場合によっては Scripting Index から開くことができる JMP ヘルプ) を確認してください。
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する「MAP = {」を使用して Contains を試すことができます。 これにより、文字列内の "MAP = {" の位置が得られ、その情報を Substr で使用して必要なものを取得できるはずです。
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する@txnelson 、
最初の行のパターンが contains ステートメントと一致する場合、このアプローチは機能します。 同じパターンではないウェーハ マップがいくつかあります。 唯一の類似点は、ウェハ パターンがテキスト ファイルの行番号 21 から始まることです。 スクリプトが読み取りを開始する行番号を定義する方法はありますか? 参考のためにウェーハマップのテキストファイルを添付しました(メモ帳++でより見やすくなります)
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するmap_str = Substr(
demo_str,
Contains( demo_str, ".X." ),
Length( demo_str ) - Contains( demo_str, ".X." ) -1
);
注: Stbstr() 関数の定義と例については、スクリプト インデックスを参照してください。
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するそれは良い説明だ@jthi 。
簡単な質問:
以下のステートメントは、リストの 2 行目からデータの読み取りを開始します。 中括弧「}」を含む最後の行を読みたくないです。
スクリプトで終了行を定義するにはどうすればよいですか
map_str = Substr(demo_str, Contains(demo_str, ".X."));
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するLoad Text File() から取得した文字列を、テキスト ファイルのウェハマップ部分のみを含む文字列になるように操作する必要があります。 これでは必要な最終的な文字列は得られませんが、何ができるかについてのアイデアは得られます。 Substr と Contains がどのように機能するかについては、Scripting Index (および JMP ヘルプ) を参照してください。 また、Words と Contains を使用するオプションも 1 つありますが、これも正しいリストを取得するためにいくつかの変更が必要です。
Names Default To Here(1);
demo_str = "SOMETHING
TEXT
EXAMPLE
MAP = {
.X.
XXX
.X.
}";
map_str = Substr(demo_str, Contains(demo_str, "MAP = {"));
show(map_str);
stop();
demo_list = Words(demo_str, "\!N");
map_start = Contains(demo_list, "MAP = {");
map_list = demo_list[map_start::N Items(demo_list)];
show(map_list);
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するまたお邪魔して申し訳ありません。 substr を試しましたが、コードに何か間違っています。 改造してもらえたら最高ですね
map_str = Load Text File();
l = Words( map_str, "\!N" );
rowc = N Items( l );
colc = N Items( Words( l[21], "" ) ); //// edits
dt = New Table( "Untitled",
Add Rows( rowc * colc ),
New Column( "X", Numeric, Continuous ),
New Column( "Y", Numeric, Continuous ),
New Column( "bin", Character, Nominal, Label( 1 ) )
);
For Each( {line, idx}, l,
cur_rows = ((idx - 1) * colc :: (idx * colc - 1)) + 1;
dt[cur_rows, "X"] = ((1 :: colc))`;
dt[cur_rows, "Y"] = (J( 1, colc ) * (idx))`;
dt[cur_rows, "bin"] = substr( line, 1 );
);
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するウェーハマップのみを取得するには、何らかの方法を使用する必要があります (それだけを気にする場合)。 現在、テキスト ファイル全体を使用しています。 そのためのいくつかのオプションは次のとおりです
- 正規表現
- 次を含むサブストリング
- {} での単語と分割
- 単語と行の分割を変更し、それを Contains to と組み合わせます。
- 行をハードコーディングし、それらに基づいてウェーハマップを取得する (通常は非常に悪いアイデア)
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する@jthi
ちょっとした質問です
実際のテキストファイルには最初にウェーハ情報が含まれています。 行21からのデータを保存したいと考えています。 jslを以下のように修正しました。 予想通りの読みですね。 助言がありますか?

map_str = Load Text File();
l = Words( map_str, "\!N" );
rowc = N Items( l );
colc = N Items( Words( l[21], "" ) ); //// edits
dt = New Table( "Untitled",
Add Rows( rowc * colc ),
New Column( "X", Numeric, Continuous ),
New Column( "Y", Numeric, Continuous ),
New Column( "bin", Character, Nominal, Label( 1 ) )
);
For Each( {line, idx}, l,
cur_rows = ((idx - 1) * colc :: (idx * colc - 1)) + 1;
dt[cur_rows, "X"] = ((1 :: colc))`;
dt[cur_rows, "Y"] = (J( 1, colc ) * (idx))`;
dt[cur_rows, "bin"] = Words( line, "" );
);
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する傑作ですよ。 どうもありがとうございます! :ニヤニヤ顔:
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するより単純なテーブルを使用する
Names Default To Here(1);
// Simple example table
dt = New Table(
"Untitled",
Add Rows(9),
New Column("X", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 1, 2, 3, 1, 2, 3])),
New Column("Y", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 1, 2, 2, 2, 3, 3, 3])),
New Column("bin", Character, "Nominal", Set Values({".", "X", ".", "X", "X", "X", ".", "X", "."}))
);
//empty string initialization
str = "";
// get unique values for Y
// I will use Associative array instead of Summarize to keep correct format of values
// Summarize would change them to strings
y_uniq = Associative Array(:Y) << get keys;
For Each({cur_y}, y_uniq,
cur_line_rows = Loc(dt[0, "Y"], cur_y); // Loc() with datatable subscripting
line_bins = dt[cur_line_rows, "bin"]; // more datatable subscripting
bin_str = Concat Items(line_bins, "");
str = str || bin_str || "\!N";
);
// remove extra whitespace
str = Trim Whitespace(str);
Write(str);


Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する感謝@jthi
JSLコーディングは初めてです。 例を教えていただけますか? あくまで参考として
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する空の文字列を初期化し、テーブル Y の値を順番にループし、現在の y の行番号を取得し、それらの行番号を使用してビンを取得し、それらのビンを初期化された文字列に追加し (Concat Items() がこれに役立ちます)、行の変更を追加して続行します。次のYさんへ。 ループ後、必要に応じて空白をトリミングします。
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するそれは魅力的に機能します。 どうもありがとう@jthi 、
テキストファイルからjmpデータテーブルに単語をインポートし、jmpテーブル内のそれらのビンに別の文字を割り当てて、元の書式でテキストファイルに変換しようとしています。
map_str =
".....GGG.....
....BGGGG....
...BGGGGGG...
..GGGGGGGGG..
.GGGGGGBBGGG.
GGGGGGGBBGGGB
GGGGGGGGGGGGB
GGGGGGGGGGGGB
.GGGGGGGGGGG.
..GGGGGGGGG..
...GGGGGGG...
....GGGGG....
.....GGG.....";
データテーブル X 、 Y 、およびビンを書式設定を維持したままテキスト ファイル形式に変換するにはどうすればよいですか。 なにか提案を?
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する私が使用しているコードを共有することはできませんが、いくつかのアイデアを含む簡単な例を次に示します。
Names Default To Here(1);
// load text file
// parse interesting things
// get map to string
map_str =
".....GGG.....
....BGGGG....
...BGGGGGG...
..GGGGGGGGG..
.GGGGGGBBGGG.
GGGGGGGBBGGGB
GGGGGGGGGGGGB
GGGGGGGGGGGGB
.GGGGGGGGGGG.
..GGGGGGGGG..
...GGGGGGG...
....GGGGG....
.....GGG.....";
l = Words(map_str, "\!N");
rowc = N Items(l);
colc = N Items(Words(l[1], ""));
dt = New Table("Untitled",
Add Rows(rowc * colc),
New Column("X", Numeric, Continuous),
New Column("Y", Numeric, Continuous),
New Column("bin", Character, Nominal, Label(1))
);
For Each({line, idx}, l,
cur_rows = ((idx - 1) * colc::(idx * colc - 1)) + 1;
dt[cur_rows, "X"] = ((1::colc))`;
dt[cur_rows, "Y"] = (J(1, colc) * (idx))`;
dt[cur_rows, "bin"] = Words(line, "");
);
nw = New Window("test",
H List Box(
align("center"),
Text Box(map_str, <<SET font="" name=""></SET>

Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成する@jthi
添付のテキスト ファイルから、ダイの位置と文字を jmp データ テーブルの列 X と Y に保存したいと考えています。 H JSLを使用してそのようなtxtファイルを表形式データとして処理するにはどうすればよいでしょうか?

JMPテーブル:

Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するありがとう@jthi
参照したいのでコードを共有していただけますか?
ありがとう、
ジャック
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するJMP を使用して、いくつかの異なる種類のウェハーマップをテキスト ファイルに基づいた XY 座標 (およびマップ ファイル) にフォーマットしました。 「手動」スクリプトで実行すると、プロセスは次のようなものだったと思います。
- テキスト ファイルを解析して重要な情報を取得します (ここでは正規表現、単語、その他の文字関数が役に立ちます)
- 行数、列数
- Xサイズ、Yサイズ
- ビンのタイプ (特に null/空のタイプ)
- ウェハーマップ
- その他の情報 (ウェーハ ID、タイプなど)
- 結果を収集できる新しいデータテーブルを作成します。
- 行数は行数 * 列数である可能性が高くなります。
- 少なくとも X 列と Y 列が必要です。別のビンに興味がある場合は、その列も追加します。
- Words(wafermap_txt, "\!N") を使用してウェハマップ文字列をループして各行を取得し、入力する列に応じて xsize/ysize を乗算して値を構築します。
- 幅と高さを気にせず、1 / 固定値を使用できる場合、この手順ははるかに簡単です。
- また、JMP マップ ファイルが必要とする座標としてそれらをコード化することも良い考えかもしれません。これにより、サイズを使用してマップ シェイプ ファイルを構築できるようになります。
- ウェーハマップのみに興味がある場合は、ヌル ビンを省略できますが、マップを構築するときにそれを考慮する必要があります。
Re: テキストファイルから x と y の値を jmp テーブルにインポートし、ウェーハマップを作成するjmp アドインとウェーハマップの過去のディスカッションを検索してください。 そこにはたくさんの答えがあります