このアドインは、Data Interchange Format または DIF ファイルから JMP データ テーブルを作成します。 のファイル形式表計算プログラム間でデータを転送するメカニズムとして、1980 年に Visicalc から生まれました。
サンプル コードでは、必要なヘッダーをチェックするための 4 つのメカニズムを提供し、一度に 1 つのみをアクティブにします。
詳細については、正規表現見る@Craige_Hales ' ブログ投稿と、Pat Match オプションの詳細については、 JSLクックブック.
デフォルトでは、オプション 2: エラー チェック用の Pat Match を実装しています。
必要なヘッダー項目:
- 題名
- ベクター
- タプル
- データ
ヘッダー形式、つまりヘッダー属性の構造
<< 属性名 >>
<< ベクトル番号 >> , << 数値 >>
<< "文字列値" >>
どこで |
<< Attribute_Name >> は、(通常) 32 文字以下のシンボル/トークンです。
<< ベクター番号 >>ファイル全体の場合は 0
<< 数値 >> は特に指定のない限り 0 です。
<< "文字列値" >> is \!"\!" (間にスペースを入れない二重引用符) 使用しない場合
オプションのヘッダー項目:これらのオプションのヘッダーは、アドインの開発中にテストされていないことに注意してください
- コメント
- ラベル
- サイズ
- 実長
- 単位
- 表示単位
データ:
<< データ型インジケータ >>、<< 数値 >>
<< "文字列値" >>
どこ、
<< Data Type Indicator >> は 3 つの値 -1、0、1 のいずれかです
-1 -- 特別なデータ値です
<< "文字列値" >> = BOT または EOD
0 --数値符号付き 10 進数
<< 数値 >> = 数値データ
<< "String Value" >> = 値インジケータ (V、NA、ERROR、TRUE、FALSE) の 1 つです。
1 --string データ値
<< 数値 >> = 0
<< "文字列値" >> = 文字列データ値
errorhdrchkExpr = Expr(
regex_hdrs = "(TABLE|VECTORS|TUPLES|DATA)";
matrix_hdrs = { "TABLE", "VECTORS", "TUPLES", "DATA" };
rqd_hdrs = { TABLE, VECTORS, TUPLES, DATA };
// Option 1: Find match using Regex with check for required headers
thematch = Regex( lines, regex_hdrs );
If( IsMissing(thematch),
errnum_desc = "Error: A required header is missing";
errhdrnum = 0;
Break();
,
errhdrnum = 1
);
// Option 2: Find specific match using Pat Match with check for required headers
err_List = {};
For( e = 1, e <= Nitems( matrix_hdrs ), e++,
thematch = patMatch( txtfile, matrix_hdrs[e] );
If( thematch == 0,
errnum_desc = Concat("Error ", char( e ), ": ", "A required header ", matrix_hdrs[e], " is missing.");
Insert Into( err_List, errnum_desc);
errhdrnum = 0;
Break();
,
errhdrnum = 1
)
);
// Option 3: Find specific match using LOC with check for required headers
err_List = {};
For ( e = 1, e <= Nitems( rqd_hdrs ), e++,
If( Loc( {lines}, rqd_hdrs[e] ) != [1],
errnum_desc = Concat("Error ", char( e ), ": ", "A required header ", rqd_hdrs[e], " is missing");
Insert Into( err_List, errnum_desc);
errhdrnum = 0;
Break();
,
errhdrnum = 1
)
);
// Option 4: Find specific match using Contains with check for required headers
err_List = {};
For ( e = 1, e <= Nitems( rqd_hdrs ), e++,
If( Contains( txtfile, rqd_hdrs[e] ) == 0,
errnum_desc = Concat("Error ", char( e ), ": ", "A required header ", rqd_hdrs[e], " is missing");
Insert Into( err_List, errnum_desc);
errhdrnum = 0;
Break();
,
errhdrnum = 1
)
);
);
サンプル.DIFファイルは、アドインの開発とテストに使用されました。
sample.dif ファイルの内容は、必要なヘッダーが含まれている添付の画像に示されています。
File Contents of sample.difFile Contents of sample.difsample.dif のファイル内容
このアドインは、コミュニティの投稿に触発されました。 @JensRiege彼が方法を尋ねたときJMPスクリプトで.difファイル形式をインポート.
質問やコメントを歓迎します。
乾杯、
スタン
6つ星! (5つのうち)
古いソフトウェア システムがいくつかあるため、私はこの古いファイル形式を毎日使用しています。
非常にうまく機能しました!
ありがとうございました !!!
-イェンス