
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 access連携 このテーブル...
-
EXCEL VBAでのCSV出力について
-
エクセルVBAで楽天証券に注...
-
エクセルで、2つのセルに検索値...
-
Windowsのマクロプログラムで、...
-
Excel VBA:特定の文字列以降(...
-
Access グループごとのページ...
-
ミュージックのアートワークを...
-
小数点以下0の非表示
-
Yahoo! JAPAN IDを新規取得でき...
-
PHPでの画像の形式の変換
-
PHPで値を保持する方法
-
bashの関数の引数にスペースが...
-
(Win32)ファイルパスから物理ド...
-
アクセスの度にIPアドレスを変...
-
PHP ハイパーリンク
-
PHP declare文について、ticks...
-
IFRAME内PHPのセッション変数取...
-
PHPで返信メールにチェックボッ...
マンスリーランキングこのカテゴリの人気マンスリー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のマクロプログラムで、...
おすすめ情報