PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
6904 | 99/06/24 15:14:41 | INIファイルのセクションやキーを削除する方法(質問ではありません) By Taka |
カテゴリ:スクリプトの記述
日付:1999年06月24日 15:14 発信者:Taka
題名:INIファイルのセクションやキーを削除する方法(質問ではありません)
Takaです。
皆さんは、INIファイル内の項目またはセクションごと削除する場合、どうやっていますか?
PowerBuilder標準のファイル制御関数を駆使して、独自に関数などを作っていませんか?
最近、Win32APIで上記処理を行なう関数を見つけましたので報告します。既にご存知でしたらすみません。
【外部関数宣言】
function long WritePrivateProfileString( string section, string key, string data, string ini ) &
library \"kernel32.dll\" alias for \"WritePrivateProfileStringA\"
function long WritePrivateProfileSection( string section, string data, string ini ) &
library \"kernel32.dll\" alias for \"WritePrivateProfileSectionA\"
【スクリプト例】
// NULL値の設定
string ls_null
SetNull(ls_null)
// セクションAAA内の項目BBBを削除する
WritePrivateProfileString( \"AAA\", \"BBB\", ls_null, \"MyApp.INI\" )
// セクションXXXを削除する
WritePrivateProfileSection( \"XXX\", ls_null, \"MyApp.INI\" )
この関数は、単にINIファイルにデータを書き込む為の関数ですが、書き込みたいデータにNULL値を与えると
その項目やセクションごと削除してくれます。
PB標準のSetProfileString関数も、内部的にはこのAPIを呼んでいるだけだと思うのですが、
「引数のいずれかの値がNULLの場合 何もしないでNULLを返す」という動きになっているので
本来の機能が有効ではありません。
独自にファイル制御関数でやるのも良いですが、こっちのほうが正攻法のような気がします。
是非お試しください。パフォーマンスも若干アップします。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.