2016-07-08 29 views
0

PB 12.5のProfile.iniファイルのウィンドウオープンイベントにFileExistsチェックがあります。 (ウィンドウ7)、私はファイルからいくつかのパラメータを読み込むためにProfileString呼び出しを使用します。 (オープンイベントでも)ただし、ウィンドウを開いてデータを取得してウィンドウを閉じると、FileExistsウィンドウを再び開くと、iniファイルにfalseが返されるようになりました。私は、アプリケーションが開いているときにFileExistsがfalseを返すようにするファイルにまだ接続しているのではないかと思う。私がvarsにデータを入れた後にファイルを解放する方法はありますか?Powerbuilder 12.5 iniファイルのFileexistsは存在するファイルに対してfalseを返します

おかげ

答えて

0

"のProfileString" オープンのようなINI機能と自動的にiniファイルを閉じます。 iniファイルで "FileOpen"を使用したことはありますか?もしそうなら、あなたは "FileClose"をする必要があります。

0

おそらく起こっていることは、アプリケーションの作業ディレクトリが変更されていることです。たとえば、ユーザーがファイルを保存または開くことができ、別のディレクトリを選択すると、アプリケーションの作業ディレクトリが変更されます。

これを修正する方法の1つは、INIファイルのあるフォルダがパスに含まれていることを確認することです。間違った設定が可能な別のものなので、私はそれをお勧めしません。より良い方法は、アプリケーションのopenスクリプトか、初期ウィンドウのスタートアップコードまたはアプリケーションマネージャを使用している場合は、アプリケーションマネージャのGetCurrentDirectoryを呼び出すことです。アプリケーションマネージャを使用している場合は、ディレクトリをインスタンス変数に格納します。それ以外の場合は、グローバル変数が機能します。この保存されたディレクトリを使用して、完全なパス名でINIファイルを参照することができます。 INIファイルのための

0

あなたがFILEOPENを使用してファイルを開く必要がないので、のProfileStringを使用して...

例:

settings.ini

[SETTINGS] 
Parameter1=Value1 
Parameter2=Value2 

使用PB

string ls_parameter 
ls_parameter = ProfileString('settings.ini', 'SETTINGS', 'Parameter1', 'none') 

戻り値1

string ls_parameter 
ls_parameter = ProfileString('settings.ini', 'SETTINGS', 'Parameter3', 'none') 

は、パラメータがsettings.iniファイルに存在しないため、返されません。

関連する問題