
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で質問しましょう!
似たような質問が見つかりました
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- 格安スマホ・SIMフリースマホ スマホの端末が安い会社は IIJmio ですか 他にもありますか スマホにお金をかけないで過ごしたい 4 2022/07/05 22:45
- その他(開発・運用・管理) 複数ファイル名の一括変更について 3 2023/04/27 13:08
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- その他(プログラミング・Web制作) 置換ソフトで指定したファイルの1行目に入力できるものを探しています 7 2022/11/24 10:34
- システム 外付けHDDの初期化について 4 2023/03/05 21:19
- システム 外付けHDDの初期化について 4 2023/03/05 20:00
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#】DataGridViewの最大列数...
-
CSVのインポート【ASP.NET】
-
excel access連携 このテーブル...
-
JSONデータを50音で選択表示さ...
-
クリップボード画像転送方法
-
Strutsで画面に表示した値の再...
-
Outlookで2年日記はできる?
-
一覧表示
-
CGIでリンクのような…。
-
HTMLへの出力の仕方
-
wordの差し込み印刷で文字...
-
HTMLリンク飛びがうまくいかない
-
エクセルで、2つのセルに検索値...
-
GOOGLEなどの検索システムのよ...
-
Windowsのマクロプログラムで、...
-
[Excel]WEBページに、Excelの文...
-
Yahoo! JAPAN IDを新規取得でき...
-
.htaccessについて
-
Dosブロンプトでtabを出力したい
-
重複を無くしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#】DataGridViewの最大列数...
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
excel access連携 このテーブル...
-
WordでExcelデータを差込...
-
VisualBasic2010のPictureBoxに...
-
MSFlexGridのデータを初期化し...
-
VB.NET 2017の勉強中です。 今...
-
ActiveReportのサブレポート機...
-
VBA内でのGetPixelを使用した時...
-
GridViewからチェックボックス...
-
INIファイルに一括書き込みを行...
-
ADOを使用してExcelファイルを...
-
★お手上げ状態です。助けてくだ...
-
VB6.0とスプレッドシート
-
EXCEL VBAで NHK NEWSの NEWSデ...
-
Windowsのマクロプログラムで、...
-
エクセルで株価&財務データを...
-
CSVのインポート【ASP.NET】
-
アクセス+VBA 最適化
おすすめ情報