問題タブ [control-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - iSeries上のCLからwrite()CAPIを呼び出す
それを使用するJavaユーティリティを呼び出す前に、IFSで構成ファイルを作成して設定するプログラムを制御言語で作成しようとしています。
open()およびclose()APIを呼び出してファイルを(再)作成することに成功しましたが、私の人生の間、ファイルに何かを入れるためのwrite()を取得できません。これまでのところ、すべて学習経験でしたが、write()呼び出しにエラーメッセージが表示されず、問題がどこにあるのかがわかりません。
それはほぼ間違いなく私が変数を処理する方法ですが、デバッグセッションはそれらが本来あるべきものであることを示唆しています。
&ERRNOおよび&ERRNO_PTRと同じ方法で&LINEおよび&LINE_PTR変数を宣言しようとしましたが、&LINEに値を割り当てようとすると、ポインターが設定されないというエラーが発生しました。これは、&ERRNO_PTRが最初にアクセスされるためだと思いますが、&LINE_PTRの場合はそうではありませんでした。とにかく、それは赤いニシンかもしれません。
RTVMSGコマンドは、末尾のブランクを除く文字列の長さを見つけるためのトリックです。
デバッグでコードを実行し、write()を呼び出す前に、&LINEには35である&LINELENと同様に、期待どおりの内容が含まれています。次に、write()が呼び出され、エラーは発生しませんが、ファイル。ファイルは空のままです。
最後のメモ。プログラムのすべてのパラメーターは現在使用されていませんが、何か馬鹿げたことをした場合に備えて、完全を期すために残しておきます。したがって、基本的に、宣言の最初の2つのブロックは無視できます。
助けていただければ幸いです。
ibm-midrange - オブジェクト名をパラメーターとして受け入れる iSeries コマンドを作成する
iSeries で新しいコマンドを作成しようとしていますが、パラメーターの 1 つは標準の LIBRARY/FILE MEMBER 構文を使用したファイル名でなければなりません。
あるいは
私がしようとしました :
- *CHAR タイプの FILE パラメーターを使用して PARM ステートメントを作成する
- ELEM ステートメントを使用して特殊なタイプを作成する
しかし、CPYTOIMPF で使用される FROMFILE パラメーターのように、修飾されたオブジェクト名である値を受け入れるパラメーターを作成する方法が見つかりません。
アップデート
JamesA の回答は正常に機能しますが、どういうわけか、CL の変数に 2 つの余分な文字を取得します。
CMD
CL
ibm-midrange - CL プログラムで 16 進形式の文字を 10 進数に戻すことはできますか?
RPG プログラム A と CL プログラム B があります。A はデータ構造をエントリー・パラメーターとして B を呼び出します。このデータ構造には、文字とパック 10 進数が含まれています。B のエントリ パラメータは文字変数として宣言されているため、エントリ パラメータが A から渡されると、10 進数値は 16 進形式になります。B で元の 10 進数値が必要です。これらの 16 進文字列を B で 10 進数に変換する方法はありますか?
ibm-midrange - OPNQRYF の QRYSLT オプションがプログラムで定義されているのに、実行中に空になるのはなぜですか?
特定のファイルからいくつかのレコードを選択するために、CL プログラムで OPNQRYF を使用しようとしています。照会選択ストリングは、OPNQRYF ステートメントで定義されます。しかし、実行中に、QRYSLT が空であるという理由でメッセージ CPF9899 がスローされました。プログラムを数回再コンパイルしましたが、問題はまだありました。次に、最初に文字変数でクエリの選択を定義してから、それを QRYSLT に割り当てようとしました。今回はうまくいきました。どうしてそうなった?同じプログラム内に QRYSLT が定義された他の OPNQRYF ステートメントがいくつかあり、それらは正常に機能しました。OPNQRYF に干渉する可能性のあるものは他にありますか?
これは機能しません:
そして、これは次のことを行います:
ibm-midrange - COBOLまたはCLからのWebサービスの呼び出し
AS400を使用していますが、緑色の画面からWebサービスを呼び出すように求められました。
これはどのようにして達成できますか?
サンプルのCOBOLまたはCLコードは非常に役立ちます。
sql - 異なる LPAR での削除と更新
開発 lpar から rpgle プログラムでファイル メンバーの削除を計算することは可能ですか。
別の lpar 内の別のファイルに対して更新を実行しますか?
1 つのプログラムで lpars の設定をどのように正確に実行できますか?これは可能ですか? ガイドしてください。
ibm-midrange - CLプログラムでのスタック実装(OS400 / iSeries)
IBMシステムiでCLを使用してプログラミングを開始しています。私の仕事は、CL言語を使用してRPN計算機を実装することです。通常、この計算機はスタックを使用します。しかし、CLで実装する必要があるとは思いません。誰かが私にアドバイスをくれますか?たぶん*PTR変数は解決策ですが、誰かがそれを使用する方法の例を教えてもらえますか?
よろしくお願いしますJS
編集:
CL言語は私の家庭教師によって課されます。
私のプログラムは、ユーザーから記号(数字/数字、数学演算の記号)を受け取る必要があります。
各サインを受け取った後、プログラムは受け取ったものを分析し、擬似コードに従って何らかのアクションを実行する必要があります。
私の問題は、このスタックをどのように実装または置換するかです。LIFOの順序で要素に到達する必要があり、構造に最終的に含まれる要素の数がわかりません。
ibm-midrange - CL CALL ステートメントで渡されるパラメーターのタイプ
i/OS 6.1 を実行している iSeries には、CL プログラムがあり、これを少しクリーンアップしています。このプログラムには、次の形式のカット アンド ペースト コードが含まれています。
当然のことながら、これを見たときに最初に考えたのは、そのポート番号を変数に移動して、コードの重複ブロックをすべて削除しようということで、最終的には次のようになりました。
このコードを実行すると失敗します。JCHKSTS プログラムは、文字列として宣言され、文字列で初期化されているにもかかわらず、3 番目のパラメーター (内部で整数に変換されます) として文字列と &ENVPORT 変数を想定しているためです。値は、明らかに文字列として渡されていません。(JCHKSTS 内からパラメーターを確認すると、ポート値の MAXINT の値が表示されます。)
'6500'
値を からに変更するという安価な手段でこれを回避しましたが、'6500 '
そもそもなぜうまくいかなかったのかわかりません。IBM のドキュメントには次のように書かれています。
呼び出しが CL プログラムまたは ILE CL プロシージャーから行われる場合、プログラム変数を渡すことができます。この場合、受信プログラムは、呼び出し側の CL プログラムまたは ILE CL プロシージャーで定義された変数と一致するようにフィールドを宣言する必要があります。
そして、確かに、受信プログラムは文字列を期待しているように見えます。変数を6文字の文字列として宣言しました。動作するはずです。
それで、私は何かを逃しましたか?変数を実際の数値としてではなく、数値の文字列表現として受信側のプログラムが認識できるようにするには、どのように変数を宣言すればよいですか?
ibm-midrange - コマンドソース定義における TYPE(*PNAME) の扱い方
TYPE(*PNAME) パラメーターを次のようにする方法:
- 必須
- デフォルト値を持つ
- 初期の長さは 10 です
プロンプト・フィールドの長さの増加を処理する方法
- タイプ *PNAME のプロンプト・フィールドの長さは、「&」で増やすことができます。
- RPGLE はコマンド処理プログラム (CPP) である必要があります
例、コマンドソース定義: