• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:INIファイルへの保存について)

INIファイルへの保存方法

hanimaroの回答

  • ベストアンサー
  • hanimaro
  • ベストアンサー率44% (22/50)
回答No.1

WritePrivateProfileString() APIでINIファイルに書き込むことが出来ます。 読み込むときはGetPrivateProfileString()及びGetPrivateProfileInt()です。 このAPIは文字列を書き込む関数なので 3番目の引数を文字列へのポインタを指定してあげないといけません。 以下のような感じになります。 MFCは使ってないので、必要な部分はMFCに置き換えてください。 CHAR szWork[16]; RECT rc; HWND hwnd; ZeroMemory( szWork, sizeof( szWork ) ); GetWindowRect( hwnd, &rc ); wsprintf( szWork, "%d", rc.left ); WritePrivateProfileString( "Position", "Left", szWork, ".\\foo.ini" ); wsprintf( szWork, "%d", rc.top ); WritePrivateProfileString( "Position", "Top", szWork, ".\\foo.ini" );

関連するQ&A

  • iniファイルに追記がしたいです。

     いつもお世話になっています。  iniファイルの中のあるデータをGetPrivateProfileStringで調べて、その中になければデータを  追記したいです。  WritePrivateProfileStringの場合、iniファイルにあるデータが追記したい内容がないだけで、他のデータが 入っていても、上書きされてしまうんですよね?  もしその中に他のデータが入っていた場合は、追記をしたいのですが、それができるAPI関数って  何かありますか?  iniファイルに関して、ネットで調べていると、WritePrivateProfileStringなどしか出てこなくて・・・。  もしできないようでしたら、追記できるような何かいいアイディアがあれば・・・と思っています。  すみませんが、よろしくお願いします。  わかりづらい文章で申し訳ありません。

  • 独自INIファイルの操作をしたいんですが

    phpでaaa.iniの操作をしたいのですが 例えば [section] key1=aaaaa の「aaaaa」を書き換えたいのです。 (力量不足もありますが) 項目が複数あるので単純なfwriteでは対応できそうになく 出来れば win32apiのWritePrivateProfileStringのような 動かし方が出来ればいいのですが 読み込みは parse_ini_fileで出来そうなのですが 更新の方は方法が見つからなくて よろしくお願いします。

    • ベストアンサー
    • PHP
  • iniファイル内の行を削除する方法

    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ステートメントを使うのが一般的なのでしょうか。 よろしくお願いいたします。

  • eMbedded Visual C++で、.iniファイルは使えるのでしょうか?

    eMbedded Visual C++で、PDA上で動作するアプリを 開発しているのですが、.iniファイルは 使えるのでしょうか? WritePrivateProfileStringを使用しようとしたら "undeclared identifier" という、リンクエラーが出てしまいました。 なにか特別なヘッダファイルかライブラリをリンクする 必要があるのでしょうか?

  • UNICODE文字が書き込めるWriteprivateProfileStringのようなファイルに書き込む関数はないですか?

    お世話になります。 VC++ MFC VisaualStidio 2003 で開発しております。 UNICODE文字が書き込めるWriteprivateProfileStringのようなファイルに書き込む関数はないでしょうか? ファイルを使用して、他EXEとやり取りしているのですが、WriteprivateProfileStringは、ANSI文字にもある文字しか使用できないみたいです。 「森鷗外𠮟る」などのUNICODEにしかない文字をファイルを経由して他EXEに渡したいのです。 よろしくお願いします。

  • コントロール名とそのプロパティー名を取得したい

    Form の Top/Left の位置を INI ファイルから取得しようと思います。 INIファイルの構造は   [コントロール名]   プロパティー=Value つまり   [Form]   Top=300 という感じです。 WritePrivateProfileString に "Form","Top" というパラメータを送りたいのですが、 この場合のオブジェクト名である"Form"、プロパティ名である"TOP"はどこで取得できるのでしょうか?

  • ダイアログの表示位置の保存

    MFCのダイアログベースでプロジェクトを作成し、 実行すると雛形のダイアログが画面中央に出現しますが、 このダイアログを任意の位置に動かし、ダイアログを閉じた後、 再実行した際に、前回終了時の位置に表示させるにはどのように実装すれば良いのでしょうか? なお、座標のデータなどは終了時にiniファイルに書き出しておき、 再起動時にそれを読み出す方法を考えています。 iniファイルへの読書きの方法については理解済みです。 お手数ですがご回答よろしくお願いします。 開発環境:VC++2005

  • iniファイルのデータ結合に関するフローチャートについて

    こんにちわdio-dioです。 今回もお助けください。 質問の内容ですが、 VC++のMFCを用いて2つのiniファイルのデータを比較し照合して 新規のファイルを作成するプログラムを組みたいと思っております。 プログラム実行例ですが、一例はこうです <iniファイル(更新用)> 【テレビ】 朝=めざまし 昼=いいとも 夜=SMAP×SMAP <iniファイル(マスタ用)> 【テレビ】 朝=朝ズバ! 昼=いいとも 夜=めちゃイケ 深夜=くりぃむナントカ 【芸人】 司会者=タモリ 【芸能人】 男性=オダギリジョー 女性=伊東美咲 <iniファイル(新規)> 【テレビ】 朝=めざまし 昼=いいとも 夜=SMAP×SMAP 深夜=くりぃむナントカ 【芸人】 司会者=タモリ 【芸能人】 男性=オダギリジョー 女性=伊東美咲 となります。 そのためにまずはフローチャートを作成することに成りました。 そのフローチャートの書き方がよく分かりません。 今までフローチャートは書いたことはありますが、 今回はiniファイル専用のAPI関数があったりと今まで私が 経験したものよりも複雑で混乱しています。 どなたか知恵をお貸しいただけないでしょうか? シンプルに考えればいいとまわりからも言われているのですが、 性格上の問題でしょうか・・・うまくいきません。 簡単なことだよ!と対応できる方よろしくお願いいたします。

  • php.iniがない

    たびたびお世話になっております。 <環境> Red Hat Enterprise Linux ES v.4 PHP 4.4.2(cli) この度、Apache2とPHPとMySQLをソースからインストールしました。 どれもインストールが終わって、開発に進んだのですが php.iniのextension_dir の値を変更しようと思ったところ php.iniがありません。 # find / -name "php.ini" -ls で検索しましたが、表示されません。 でも、phpinfo()は表示されています。 ちょっと気になったのが、phpinfo()で表示される Configuration File (php.ini) Path が 「/usr/local/lib」となっていて、php.iniで終わっていないことです。 インストールの方法がまずかったのでしょうか? ご教授よろしくお願いいたします。

  • VB.NETでのiniファイル読込について。

    .netでのiniファイル読込がうまくいきません。 何が悪いのかさっぱりわかりません。 ご指摘お願いいたします。 環境 os :xp 開発ソフト VB.NET ver 1.1.4322 SP1 ソース Private Declare Function GetPrivateProfileString Lib "kernel32" _ Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long '実行ファイルパスの取得 *VB6のapp.path Shared Function GetAppPath() As String Return System.IO.Path.GetDirectoryName( _ System.Reflection.Assembly.GetExecutingAssembly().Location) End Function Function INI_DBPATH_READ(ByVal FilePath As String) As String Dim lngRet As Long   '読み込みバッファ(固定長) Dim strGetBuff As String = 256   'iniファイルより読み込む文字列のサイズ Dim intGetSize As Integer   'セクション名 Dim strSection As String   'キー名 Dim strKey As String   '読み込みエラー時の出力文字列 Dim strErr As String   'iniファイル名(フルパス) Dim striniFn As String strGetBuff = Space(256) strSection = "TIFF_FOLDER" strKey = "PATH" strErr = "失敗" striniFn = Replace(GetAppPath(), "\bin", "\Ini") & "\test.ini" intGetSize = 256 'strGetBuffに文字列を取得する lngRet = GetPrivateProfileString(strSection, strKey, strErr, _ strGetBuff, intGetSize, striniFn) '末尾のNull除去 MsgBox(Microsoft.VisualBasic.Left(strGetBuff, InStr(strGetBuff, Chr(0)) - 1)) End Function iniファイルの内容 [TIFF_FOLDER] PATH=成功