2016-07-08 5 views
0

PB 12.5의 Profile.ini 파일에서 창 열기 이벤트에 FileExists 검사가 있습니다. (windows 7) 그리고 나서 ProfileString 호출을 사용하여 파일의 일부 params를 읽는다. (또한 열린 이벤트에서) 그러나 창을 열고 일부 데이터를 검색 한 다음 창을 닫으면 창을 다시 열 때 FileExists에서 이제 ini 파일에 대해 false를 반환합니다. 응용 프로그램이 FileExists에서 false를 반환하도록하는 파일에 계속 연결되어있는 것 같습니다. 내 vars을 채운 후에 파일을 비우는 방법이 있습니까?Powerbuilder 12.5 ini 파일의 Fileexists가 존재하는 파일에 대해 false를 반환합니다.

감사

답변

0

"ProfileString"열린처럼 INI 기능과 자동으로 INI 파일을 닫습니다. ini 파일에서 "FileOpen"을 사용하십니까? 그렇다면 "FileClose"를 수행해야합니다.

0

아마도 응용 프로그램의 작업 디렉토리가 변경되고 있다고 생각됩니다. 예를 들어 사용자가 파일을 저장하거나 열어 다른 디렉토리를 선택하게 만들면 응용 프로그램의 작업 디렉토리가 변경됩니다.

이 문제를 해결하는 한 가지 방법은 INI 파일이있는 폴더가 경로에 있는지 확인하는 것입니다. 그것이 잘못 구성 될 수있는 또 다른 일이기 때문에 나는 이것을 권장하지 않습니다. 더 좋은 방법은 응용 프로그램의 open 스크립트 나 초기 창 또는 응용 프로그램 관리자의 시작 코드에서 GetCurrentDirectory를 호출하는 것입니다. 응용 프로그램 관리자를 사용하는 경우 디렉토리를 인스턴스 변수에 저장합니다. 그렇지 않으면 전역 변수가 작동합니다. 이 저장된 디렉토리를 사용하여 전체 경로 이름으로 INI 파일을 참조 할 수 있습니다. PB

settings.ini

[SETTINGS] 
Parameter1=Value1 
Parameter2=Value2 

사용법 : 당신이 제공 FileOpen을 사용하여 파일을 열 필요가 없습니다으로 INI 파일에 대한

0

는 ...,

예를 ProfileString를 사용

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 파일에 존재하지 않으므로 아무 것도 반환하지 않음