iniファイルの使い方自体を間違えているのかも知れませんが、
わからないので教えてください。
VB6でiniファイルを作成しています。
使用しているAPIは「WritePrivateProfileString」です。
iniファイルの内容が以下のようにあったとします。
これは上記のAPIで出力しています。
[a]
a1=xxxx
a2=yyyy
a3=zzzz
プログラムでiniファイルを読み込み、
画面上である操作をしたとして、iniファイルを更新します。
結果、以下のような内容にするには、どのようにしたらよいのでしょうか。
[a]
a1=xxxx
a2=zzzz
a1、a2を出力するところまではできるのですが、
a3の行を削除する方法がわかりません。
もしAPIでこの行を削除する方法がなければ、
iniファイルを削除して、再作成すればよいのだと思います。
その際には、iniファイルを削除するAPIがあるのでしょうか。
KillステートメントやOpenステートメントを使うのが一般的なのでしょうか。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpSectionName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
と宣言して、
lpString に NULL を渡すと、キーの削除になります。
NULL の渡し方は
WritePrivateProfileString(ByVal SectionName, ByVal KeyName, ByVal 0&, ByVal FileName)
のようにします。
同様に
WritePrivateProfileString(ByVal SectionName, ByVal 0&, ByVal 0&, ByVal FileName)
とすると、セクションの削除ができます。
この回答への補足
最初は行削除のつもりでしたが、
セクション毎の操作の方が都合がよいプログラムでしたので、
ANo.1のセクション毎の出力と合わせて、
セクション毎の削除を利用させていただきました。
ありがとうございました。
No.1
- 回答日時:
削除するためのAPIは存在しません
変わりにセクションデータを書き込むAPIを使用します
セクションデータを取得する GetPrivateProfileSectionでセクション内のキーとデータを取得します
これで取得したデータか必要ない部分を文字列操作で削除して
WrirePrivateProfileSectionで書き込みましょう
たとえば
dim ss as string
ss = String( 256, " ")
GetPrivateProfileSection "A", ss, 256, "sample.ini"
ss = Left(ss, InStr( ss,"A3")-1)
WritePrivateProfileSection "A", ss, "sample.ini"
といった具合です
この回答への補足
ご回答いただき、ありがとうございます。
セクション全体を読み書きできるんですね。
教えていただきましたコードでうまくできそうです。
[a]は簡単なセクション例だったのですが、
他の キー=データ を追加する場合は、
行(キーごと)の区切りに Chr(0) を使用すればよろしいのでしょうか。
取り込んだ文字列の区切り位置を Asc で確認するとそうだったのですが、
それよりも vbCrLf などの改行文字でした方がよいのでしょうか。
行区切りにはChr(0)を使用してうまくいけたような気がするので、
これでセッション毎の出力をするようにしました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
あなたの習慣について教えてください!!
あなたが習慣だと思って実践しているものを共有してくださいませんか? 筋肉トレーニングでも朝シャワーでも、あなたが習慣だなと思えば何でも構いません
-
iniファイルに追記がしたいです。
Visual Basic(VBA)
-
INIファイルに一括書き込みを行う方法を教えて下さい。
Visual Basic(VBA)
-
【VBS】 iniファイルの特定部分のみ変更
Visual Basic(VBA)
-
-
4
バッチファイルで、iniファイルの内容を一部書き換える方法を教えてください。
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XMLデータを変換し印刷する方法
-
【Excel】[Expression.Error] ...
-
特定のエクセルファイルを起動...
-
Batch: フォルダ内の特定のファ...
-
VBAでCSVファイルが使用中かど...
-
共有フォルダに誰が何にアクセ...
-
月が変わったら自動でシートが...
-
excelを共有ファイルにすると行...
-
(Excelマクロ)datファイルをエ...
-
Excel VBA 処理後データが重た...
-
ファイルを開くときにセキュリ...
-
Access VBA を利用して、フォル...
-
大量のCSVデータを行列の変換を...
-
【アクセス】「ほかのユーザー...
-
事務の派遣で働いています。多...
-
Access VBAで読み込んだ配列をc...
-
AccessVBAで作成したExcelファ...
-
メールで送られてきたワードの...
-
ファイルの途中に文字列を挿入
-
amifldrv64.sysについて教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
特定のエクセルファイルを起動...
-
共有フォルダに誰が何にアクセ...
-
Batch: フォルダ内の特定のファ...
-
(Excelマクロ)datファイルをエ...
-
AccessVBAで作成したExcelファ...
-
VBAでCSVファイルが使用中かど...
-
excelを共有ファイルにすると行...
-
Excel VBA 処理後データが重た...
-
月が変わったら自動でシートが...
-
【アクセス】「ほかのユーザー...
-
XMLデータを変換し印刷する方法
-
Access VBA を利用して、フォル...
-
tmpファイル なぜできる?削除...
-
拡張子が「cda」のファイルを聞...
-
vbsでゴミ箱への移動
-
WEBクエリが使えない場合のHPデ...
-
ファイルの途中に文字列を挿入
-
mdbファイル フォームを開くと...
-
社内Excel共有ブックでの保存ト...
おすすめ情報