パス名に変数を使用するこんにちは、
これが些細な質問である場合はご容赦ください。私はJSLでの作業経験があまりありません。
JSLコードを使用してホバーラベルに画像を追加しようとしていますが、変数を使用して画像パスを定義したいと思います。 写真のフォルダーがあり、テーブル内の変数を使用してそれらを呼び出す必要があります。
たとえば、私の写真には1から100のラベルが付いており、テーブルに「写真番号」という列があります。 私はこれらを次のように呼び出すことができるようにしたい:
PictureBox(Open( "c:/ iris /"画像番号 ".jpg"、jpg));
これは可能ですか?
どうもありがとう!
スクリプティングRe:パス名に変数を使用するはい、これのいくつかのバリエーション:
img << saveimage( "f:/path/x" || Char( imagenumber ) || ".png", "png" );
xは番号の前のプレフィックスであり、オペレーティングシステムでは必要ありません。
Re:パス名に変数を使用するありがとう!やってみます。
Re:パス名に変数を使用する特定の画像番号を使用しても問題ありませんが、このパスに変数名(変数列は「画像番号」)を挿入できません。たとえば、次のように機能しません。 これを修正する方法はありますか?
PictureBox(Open("c:/iris/" || :picture number|| ".jpg", jpg));
Re:パス名に変数を使用するHover LabelEditorがPictureGraphletに提供する例を確認すると
// Example:
// Graph Builder(Variables(Y(local:_measurements[1])), Elements(Histogram(Y)))
// Example:
// PictureBox(Open("c:/iris/" || local:_Species || ".jpg", jpg));構文は少し特別なようです。 多分それはこのようなもので動作するでしょう:
PictureBox(Open("c:/iris/" || char(local:_picture number)|| ".jpg", jpg));Re:パス名に変数を使用するログでメッセージを確認してください。 次の1つ以上が役立つ場合があります。
変数にパス名を作成してログに出力し、変数を渡して開きます。
開く2番目のパラメーターを引用符で囲みます。
列名の前にデータテーブルスコープを追加します。
列名の後に行番号の添え字を追加します。
編集:char()関数を使用して数値を文字に変換します!
filename = "c:/iris/" || char(dt:picture number[1]) || ".jpg";
show(filename);
PictureBox(Open( filename, "jpg"));
Re:パス名に変数を使用するこのスレッドを確認することをお勧めします。 彼らは同じユースケースを持っていました。 スレッドには、役立つと思われるスクリプトの例が多数含まれています。
ホバーラベル
Re:パス名に変数を使用するどうもありがとう、これはうまくいきます。
Re:パス名に変数を使用するうわー、素晴らしい例、 @jthi ! 共有していただきありがとうございます!
ここでの秘訣は、テーブルの列から画像の細かい名前を作成するときに、列名と行を指定する必要があることです。 グラフレット実行コンテキストによって入力されたローカル名前空間内で、現在の行は変数local:_firstRowで使用できます。 したがって、構成は次のとおりです。
Picture Box(Open(Column("PicAdress")[local:_firstRow],jpg))
この変数およびその他の変数の詳細については、を参照してください。ホバーラベル実行コンテキスト。
Re:パス名に変数を使用する回答ありがとうございます。
フォローアップの質問があります。 ホバーラベルで列からファイルアドレスを取得したい。 私の列にはアドレス自体があります。たとえば、私の列のテキスト(PicAdressという名前)は「c:/iris/picNumber.jpg」です。
ただし、この変数を受け入れるためのhovelラベルを取得できません。私は使用してみました:
PictureBox(Open(local:_PicAdress, jpg))
成功しませんでした。
列にアドレスを入力するだけで問題ありません。
PictureBox(Open("c:/iris/" || local:_PicAdress || ".jpg", jpg))
何かアドバイス?
Re:パス名に変数を使用するログをチェックして、発生しているエラーを確認してください。 おそらく次のようなものです:「名前空間 "local_"は、 'local_:PicAdress'のアクセスまたは評価で定義されていません」。
次のようなものを試してください。
Picture Box(Open(Column("PicAdress")[local:_firstRow],jpg))
おそらくからの詳細情報:基になるデータポイントのデータを使用して、マウスオーバーでクエリを実行するにはどうすればよいですか?
編集:
サンプルスクリプトを追加しました。 $ TEMPにいくつかのファイル(デフォルトでは10)を作成し(そしてウィンドウを閉じるときにそれらを削除しようとします)、2つのグラフビルダーでウィンドウを作成します。
- まず、次のアイデアを使用して、グラフビルダーのデータからパスを構築します。
PictureBox(Open( "c:/ iris /" || local:_PicAdress || ".jpg"、jpg))
- 2つ目は、グラフビルダーからの行情報のみを使用し、datatableから行に基づいてデータを取得することです。
ピクチャーボックス(Open(Column( "PicAdress")[local:_firstRow]、jpg))