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 (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.