1

d3 pick basic にファイル変数があり、対応するファイルを把握しようとしています。

私は言うべき明白なことを試しました:

print f *suppose the file variable's name is f in this case

しかし、それはうまくいきませんでした。

SELECTION: 58[B34] in program "FILEPRINTER", Line 7:  File variable used 
where string expression expected.

私も次のようなことを試しました:

list f *didn't compile
execute list dict f *same error
execute list f *same error

しかし、それらも機能しませんでした。

誰かが疑問に思っている場合に備えて、そもそもこれをやろうとしている理由は、私が作業しているコードベースで上下に渡されるグローバル変数があるためですが、グローバル変数がどこにあるかを見つけることができません変数はその値を取得します。

4

1 に答える 1

0

そのファイルポインタ変数は「ファイル記述子」と呼ばれます。そこから情報を取得することはできません。

ファイルのファイルを使用して書き込みイベントをログに記録し、コードによって書き込みが実行された後、どのファイルが更新されたかを確認できます。これを行うための詳細は少し面倒です。これについては、付加価値再販業者に頼るか、有能な支援と契約する必要があります。

これがライブ エンド ユーザー システムでない場合は、"WHAT!FILE!IS!THIS?" のような非常にユニークなテキストで書き込まれるアイテムを変更することもできます。次に、Search-System コマンドを実行してアカウント (またはシステム) 全体を検索し、そのテキストを見つけることができます。そのコマンドの適切な使用法については、ドキュメントを参照してください。

これはおそらく最良のオプションです...以下を挿入します。

IF @USER = "CRISZ" THEN ; * substitute your user ID
  READU FOO FROM F,"BLAH" ELSE
    DEBUG
    RELEASE F,"BLAH"
  END
END

そのコードは 1 人だけ停止します。それ以外の場合は、通常どおり流れます。停止したら、LIST-LOCKS コマンドを使用して、アイテム「BLAH」の読み取りロックが設定されているファイルを確認します。それはあなたのファイルです!コードを削除して再コンパイルすることを忘れないでください。ユーザーがアクティブにコードを使用しているときにコードを再コンパイルすると、異常終了することに注意してください。この種の作業は、勤務時間外またはテスト システムで行うのが最善です。

そのようにコードを変更できない場合、このような診断は困難になる可能性があります。上記の提案が役に立たない場合、この課題はまだあなたの個人的な経験レベルを超えている可能性があると思います。助けを求めることをお勧めします.

ここでの提案が役立つ場合は、これを回答としてフラグ付けしてください。:)

于 2014-06-16T19:32:08.640 に答える