4D-JUG
Would you like to react to this message? Create an account in a few clicks or log in to continue.

4Dの外部プロセスコマンドについて。

3 posters

Go down

4Dの外部プロセスコマンドについて。 Empty 4Dの外部プロセスコマンドについて。

投稿 by OiwakeCoco 2022-07-15, 3:06 am

現在4Dで為替や株価の更新情報をネットから拾ってきて、4Dのデータを更新するようなプログラムを書いています。
1−4D側で更新する情報の掲載されているURLをリストで外部テキストファイルへ書き出す(4D)
2−PYTHONで4Dから指定されたURLへアクセスし、必要な情報を 外部テキストファイルに書き足す。(PYTHON作業)

3−PYTHON側で作業が終わったのを確認して、更新された情報を外部テキスファイルから4Dへ取り込むと行った 作業で進めてきました。

4D側の作業、 PYTHON側の作業は目処がついたのですが、 1−2 の作業で、4D側からPYTHON のスクリプトを起動できないで困っております。

LAUNCH EXTERNAL PROCESS("open -a /Users/myname/.pyenv/shims/python3 /Users/myname/Downloads/20220714.py") のように

LAUNCH EXTERNAL PROCESS("open -a プログラム名 開きたいファイル") などと試したのですがXです

LAUNCH EXTERNAL PROCESS("open -a /System/Applications/Utilities/Terminal.app ") ではターミナルアプリは起動出来るのですが、ターミナルアプリ内に

Users/myname/.pyenv/shims/python3 /Users/myname/Downloads/20220714.py を打ち込む方法などないのでしょうか?

それとも、そもそも、私の考えている、一部4D-外部で処理ー4Dに戻って処理の継続などは無理なのでしょうか? ヒントをいただけると有りがたく思います。

OiwakeCoco

投稿数 : 1
登録日 : 2022/07/15

トップに戻る Go down

4Dの外部プロセスコマンドについて。 Empty Re: 4Dの外部プロセスコマンドについて。

投稿 by osaru 2022-07-18, 12:12 pm

はじめまして、20220714.py に実行権限を与えて、
Code:
$cmd:="/Users/myname/Downloads/20220714.py"
LAUNCH EXTERNAL PROCESS($cmd;$inputStream;$outputStream;$errorStream)
で良いかと思います。
同期実行ならPythonでの標準出力は、$outputStreamに入ってくるので状況なども4D側で確認できます。
処理時間がかかるなら非同期実行でしょうけど、その場合は特定パスに結果が書き込まれるのを4D側で監視する等の処理が必要です。

osaru

投稿数 : 67
登録日 : 2017/08/14

トップに戻る Go down

4Dの外部プロセスコマンドについて。 Empty Re: 4Dの外部プロセスコマンドについて。

投稿 by miyako 2022-08-02, 8:49 am

pythonをプラグインにしたものですが,役に立ちそうでしょうか

https://github.com/miyako/4d-plugin-python

ダウンロードはReleasesから

ちょっと例題がわかりづらいですが,要するにpythonのソースコードをそのままテキストで渡します。

そのpythonの中で

Code:
import fourd
d = {"foo":"bar"};
fourd.call("cb_test", d);

みたいにするとプロジェクトメソッドが呼べます。

miyako

投稿数 : 487
登録日 : 2016/07/05

トップに戻る Go down

4Dの外部プロセスコマンドについて。 Empty Re: 4Dの外部プロセスコマンドについて。

投稿 by Sponsored content


Sponsored content


トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可