
Visual Basic6.0において
INIファイルに一括書き込みを行う方法はないでしょうか。
「KEY_1」~「KEY_1000」に"-1"を書き込みたいのですが、
現状、
WritePrivateProfileString()
を使用して、「KEY_〇」を1000回ループして書き込む方法しかわかりません。
「KEY_1」~「KEY_1000」に一括で"-1"を書き込む方がパフォーマンスの向上につながると思うのですが、何か名案はないでしょうか。
ご存知の方、教えて下さい。お願い致します。
No.1ベストアンサー
- 回答日時:
WinAPIのWriteProfileSectionを使えばいいのでは ・・・
Private Declare Function WritePrivateProfileSection _
Lib "kernel32" Alias "WritePrivateProfileSectionA" _
(ByVal lpAppName As String, ByVal lpString As String, _
ByVal lpFileName As String) As Long
といった具合でAPI宣言する
標準モジュールに宣言するなら Public Declareで宣言する
dim s1(1 to 1000) as String, ss as String
dim n as Integer
for n = 1 to 1000
s1(n) = "Key_" & n & "=-1"
next
ss = Join( s1, Chr(0) )
WritePrivateProfileSection "Sample", ss, ".\myFile.ini"
セクション内が 書き換えたいものだけなら上記でいいがほかのデータもあるのでしたら GetPrivateProfileSectionで元の内容を取得してから変更部分を書き換えて出力するようにしましょう
Private Declare Function GetPrivateProfileSection _
Lib "kernel32" Alias "GetPrivateProfileSectionA" _
(ByVal lpAppName As String, ByVal lpReturnedString As String, _
ByVal nSize As Long, ByVal lpFileName As String) As Long
といった具合なので
dim ss as String
ss = String( 4096, " " )
GetPrivateProfileSection "Sample", ss, Len(ss), ".\myFile.ini"
といった具合にして 読み込む変数にあらかじめダミーのデータを設定してから呼び出しましょう
早速の回答、及び親切な説明をありがとうございます。
教えていただいた方法で試してみます。
WritePrivateProfileString()を1000回コールする方法では下記(1)~(3)を1000回実行することとなり、(1)と(3)の繰り返しが無駄と思いました。
(1).INIファイルオープン
(2).「KEY_〇」書き込み
(3).INIファイルクローズ(セーブ)
WriteProfileSection()を使用することにより、
(1).INIファイルオープン
(2).「KEY_1~KEY_1000」書き込み
(3).INIファイルクローズ(セーブ)
(1)~(3)を1回だけ実行していることとなり、処理時間の短縮に繋がるのではと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WordでExcelデータを差込...
-
wordの差し込み印刷で文字...
-
VB6.0とスプレッドシート
-
excel access連携 このテーブル...
-
DTOとEntityの差は何ですか。
-
【C#】DataGridViewの最大列数...
-
VBA内でのGetPixelを使用した時...
-
JavaからPHPへの値の受け渡し
-
INIファイルに一括書き込みを行...
-
トラックバック機能の実装
-
php ページの複製
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
「取得先」という表現について
-
セッション変数にパスワードを...
-
テーブルに送信ボタンをつける
-
shシェルスクリプト 空白行の...
-
小数点以下0の非表示
-
format関数について
-
(Win32)ファイルパスから物理ド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#】DataGridViewの最大列数...
-
wordの差し込み印刷で文字...
-
DTOとEntityの差は何ですか。
-
excel access連携 このテーブル...
-
WordでExcelデータを差込...
-
C#でのForm間のデータ受け渡し...
-
★お手上げ状態です。助けてくだ...
-
IDに欠番があった場合のupdate処理
-
携帯の対応について質問!!
-
VBA内でのGetPixelを使用した時...
-
htmlやCGIでのデータの送信につ...
-
JavaからPHPへの値の受け渡し
-
Amazon APIについて
-
ASPでの検索画面の作り方について
-
INIファイルに一括書き込みを行...
-
「外部データの取り込み」とい...
-
VB6.0とスプレッドシート
-
blog トラックバック機能
-
TCPでデータを受け取ってそれを...
-
Windowsのマクロプログラムで、...
おすすめ情報