• 締切済み

【VBS】 iniファイルの特定部分のみ変更

特定フォルダにある、iniファイルを変更したいと思っています。 テキストファイルで変更するなら、 TestDateA=1 ↓ TestDateA=5 と変更するのは 1行ずつ読み込み、Replaceで出来ると思うのですが iniファイルとなると特別なのか、調べてみても良く分かりません。 h ttp://yozda.exblog.jp/9552062/ この方が書いている通り、書けば良いのかもしれませんが 自分で理解していない分、このまま使うのは不安です。 クラスを使うとなると余計にわかりません・・・。 ReadLineで読み込み、特定の文字を含んだらReplaceみたいな 方法は使えないでしょうか? それ以外に何か方法はありますでしょうか? 以上、よろしくお願い致します。

みんなの回答

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> 特定フォルダにある、iniファイルを セクションなんかが指定されている、Windowsやレジストリエディタで扱えるしっかりとしたiniファイルなのか?単に拡張子が.iniのファイルなのか?で話が違います。 前者と仮定して、 > それ以外に何か方法はありますでしょうか? WindowsAPIのWritePrivateProfileStringを使うとかが真っ当だと思います。 なっちゃんのプログラミングTips: INIファイルの読み書き http://natchan-develop.seesaa.net/article/11120494.html WritePrivateProfileStringはWindowsに用意されている、セクション名やキー名を指定してiniファイルへ書き込みを行うためのインターフェースです。 Replaceの処理の中身でForやMidみたいな関数が使われてるなんて事考える必要が無いのと同様に、WritePrivateProfileStringの中で置換がどうとかって事は考える必要が無いです。 -- > と変更するのは > 1行ずつ読み込み、Replaceで出来ると思うのですが > iniファイルとなると特別なのか、調べてみても良く分かりません。 いわゆるWindowsで扱うiniファイルであれば、一応フォーマットが定まっています。 通常、iniファイルにアクセス、値の書き込みを行う場合、セクション名、キー名で対象の値を指定します。 セクション名が違って、同じキー名の複数の値をまとめて変更しちゃうなんて事は望ましくないです。 自分で書き出したデータを.xlsとか.docって拡張子にしたら紛らわしいのと一緒で、独自の処理するのであれば別の拡張子にしとくのが良いです。 INIファイル - Wikipedia http://ja.wikipedia.org/wiki/INI%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB

satoron666
質問者

お礼

回答ありがとうございます。 情報不足で申し訳ありません。 特定キーの1つの値しか変更する予定はありません。 Windowsで扱うiniファイルだと思います。 フォーマットが決まっているため、問題無いかと思います。 詳しく回答頂き、ありがとうございます! 参考にし、1行ずつ理解していこうと思います^^

関連するQ&A

  • iniファイルを読み込んでからその後

    おはようございます。 VB6.0使っています。 iniファイルを読み込んできて01~05の名称をFORMに並べてあるテキストボックスに表示。 読み込んできた名称をFORMにて表示させたら修正したり追加したり出来ます。 そして最後にはまたiniファイルに保存させます。(保存ボタンがあります) でもiniファイルにある設定番号にある01のみ変更出来ないようにしたいのです。 ここでは東京本店。テキストボックスに表示させたのを変更できないようにしたいのです。 何かいい方法はないでしょうか。 ヒントでもアドバイスでもツッコミでもかまいません。 よろしくお願いいたします。 iniファイル [MY_NO] ;設定番号 MY_NO=01 ; [MY_NAME] ;名称 01=東京本店, 02=大阪支店, 03=, 04=, 05=, ;

  • iniファイルとの比較(iniファイル操作)

     初めまして私はVB6.0の初心者でVB6.0について勉強しています。現在以下のようなiniファイル操作について分からないことがあります。 ・プログラム内容 テキストボックスにログインID(例えばenshu)を入力しOKボタンを押して、iniファイル(例えばrenshu.ini)にある情報と照合してもしiniファイルに無かったら「ログインできません」というメッセージボックスを出すプログラム。 条件 ・ フォームにテキストボックス(Text1.Text)とコマンドボタン(OKボタン)がある ・ Iniファイルの形式(renshu.ini) IDNO(セクション名) OK_ID(キー名)1 = “enshu”(ログインID) OK_ID(キー名)2 = “ren”(ログインID) OK_ID(キー名)3 = “shu”(ログインID) 上のような形式が不特定多数ある ・ Iniファイルの保存場所 c:\work\renshu.ini 私の場合以下のように書きました。 Private Sub OK_Click() 'OKボタンがクリックされたら If  Text1.Text <> GetIniString("IDNO", "OK_ID", "c:\work\renshu.ini") Then '入力したログインIDがiniファイルに無い場合 'メッセージ表示 MsgBox "ログインできません" End If End Sub としましたがメッセージボックスが表示されません。なぜなのでしょうか。教えてください。宜しくお願いいたします。

  • 再起動しないでiniファイルの変更を反映したい!

    VBで、メールソフトを作成したのですが、iniファイルの変更を反映するにはソフトをいちいち再起動しないと出来ません。 ソフトを再起動しないでiniファイルの変更を反映する方法を教えてください!

  • Macでphp.iniファイルの記述を変更したい

    現在Mac OSを使ってPHPやJavaの勉強をしています。 OS Xのバージョンは10.6.8です。 etcフォルダに収納されているphp.iniファイルの記述を変更したいとき(phpでメール送信するときなどのメール設定に関する記述など)該当ファイルのアクセス権を読み/書きに変更した上でエディタで開いても変更出来ません。 何か方法はあるのでしょうか? 教えていただけると助かります。

    • ベストアンサー
    • Mac
  • BOOT.INI の変更の方法

    OSの構成を変えたので、BOOT.INI を変更したいのですが、ファイルの場所や変更方法がわかりません。 「ファイル名で実行」→「MSCONFIG」でBOOT.INIの内容はわかりますが、書き換えができません。 ご存知の方はお教えください。

  • ASP.NETでINIファイル読込みをしているのだけれど設定が有効にならない

    WindowsServer2003 ASP.NET(2.0) 設定情報をINIファイルから読み込んでいます。 (XMLではなく、INIファイル) INIファイルの中の内容を更新すると、 ASPの場合は、すぐに内容が反映されたのに、 ASP.NETの場合は、INIを変更したあと、 IISの画面から、WEBCONFIGファイルの内容を 何か変更してやらないと、INIを再読込(?) してくれないみたいなのですが、何か他によい方法は ないでしょうか。 要件としては、IISを再起動せずに、セッションを切らずに INIファイルの変更内容を有効になれば、どのような 方法でもよいです。(できるだけ簡単な方法でお願いします)

  • デスクトップのdesktop.iniが見つからない

    「Windowsスマートチューニング 12 Vista編: desktop.iniを用いてフォルダをカスタマイズする」 http://news.mynavi.jp/column/windows/012/index.html 「エクスプローラでは「デスクトップ」、コマンドラインからは「Desktop」と名称が異なるポイントは、今回のテーマであるDesktop.iniに隠されています。フォルダの表示オプションを変更し、システムファイルの非表示を解除しますと、デスクトップにはふたつのdesktop.iniファイルが表示されます(図3)。」 この通りに操作してもdesktop.iniが見つかりません。 Windows7では廃止されたということですか?

  • 特定のタグから特定のタグまでの文章をとりだす。

    htmlのソースの特定のタグから特定の タグまでの文章をとりだして ファイルに書き込むという 操作をしたいのですが、 String型の変数にreadLine()で 一行ずつ読み込みながらしようと思っているのですが、 他にいい方法はありませんか? お願いします。 またタグをあつかうクラスってありますか? お願いします。

    • ベストアンサー
    • Java
  • desktop.ini のテキストファイルが表示される

    VAIO JX10 (Windows XP Home)を使用しています. どのユーザーでログインしても,最初に desktop ini. が テキストファイルで開きます. (経緯) 先日,Internet Explorer のトラブルが原因で,Cドライブを 初期化しました.もちろんファイルはバックアップし,復元 しましたが,ついでにファイルを整理しているうちに余計な ことをしたのかもしれません. desktop ini. というファイルは,フォルダオプションを使った 時に生成されるということですね.また通常開くことはない し,アイコンも見えないと聞いています.しかし現在はところ どころのフォルダにこのアイコンが出ています. 何とか直す方法はありませんか?  何の操作が原因か自分でもわからないので,お答えいただくのも 難しいと思いますが,よろしくお願いします.

  • (VBS) テキストファイル読込での改行コード

    VBAからVBスクリプトへの移植作業をしています。 テキストファイル中に改行コード \r\n と \n が混在しているのですが、 \r\n までを1行として取得したいです。 VBAだと Line Input で取得できたのですが、 VBScriptの場合、FileSystemObject.OpenTextFileで開き .ReadLine で読み込むことになりますが、 ReadLineは \n も行の終端とされてしまい、本来1行のデータが複数行に分かれて読み込まれてしまいます。 .ReadAllで一旦すべてを取得してから Split("\r\n") で分割するという方法は ファイルサイズが膨大だと負荷が掛かるので避けたいです。 \n は、これはこれでデータとして必要なので、削除することはできません。 負荷が掛からず、良い方法があればご教授頂きたく思います。 よろしくお願い致します。