サンプル集 |
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■other |
Linuxコマンド |
用語集 |
debian メモ |
apache2 メモ |
MySQL メモ |
Oracle メモ |
HOME |
No.473 でiniファイルを読み込むディレクトリの位置を探りましたが、簡単な方法がありました。
◆環境OS | Windows XP Professional Version 2002 Service Pack 3 |
---|---|
VC | Microsoft Visual C++ 2008 91179-136-7480673-60943 |
どの位置のiniファイルを読み込んでいるのかを探る為に色々な場所にiniファイルを配置し、 GetPrivateProfileString()関数の戻り値を見ていました。 これはそもそも自分がどのフォルダで実行されているのか分らない事が原因でした。
GetCurrentDirectory()関数を使うと実行時のカレント・ディレクトリが取得できます。 取得した値を見ると自分が何処で実行されたのかが分ります。 この値にiniファイルを名を繋げば、カレント・ディレクトリにあるiniファイルを取得するように出来ます。
IniFileReadTest2.cpp | ||
|
iniファイルは以下のようにしました。
IniFileReadTest2.ini | ||
|
SUB-PC-NUMBER5の値は語尾に3文字半角空白が付いています。
実行します。
App[(null)] Key[(null)]
ret=19 LastError=0
[MAIN_INFO]
[SUB_INFO]
App[MAIN_INFO] Key[(null)]
ret=10 LastError=0
[PC-NUMBER]
App[SUB_INFO] Key[(null)]
ret=74 LastError=0
[SUB-PC-NUMBER]
[SUB-PC-NUMBER2]
[SUB-PC-NUMBER3]
[SUB-PC-NUMBER4]
[SUB-PC-NUMBER5]
App[SUB_INFO] Key[SUB-PC-NUMBER]
ret=0 LastError=0
App[SUB_INFO] Key[SUB-PC-NUMBER2]
ret=12 LastError=0
[20110615-002]
App[SUB_INFO] Key[SUB-PC-NUMBER3]
ret=12 LastError=0
[20110615-003]
App[SUB_INFO] Key[SUB-PC-NUMBER4]
ret=12 LastError=0
[20110615 004]
App[SUB_INFO] Key[SUB-PC-NUMBER5]
ret=12 LastError=0
[20110615-005]
ret=19 LastError=0
[MAIN_INFO]
[SUB_INFO]
App[MAIN_INFO] Key[(null)]
ret=10 LastError=0
[PC-NUMBER]
App[SUB_INFO] Key[(null)]
ret=74 LastError=0
[SUB-PC-NUMBER]
[SUB-PC-NUMBER2]
[SUB-PC-NUMBER3]
[SUB-PC-NUMBER4]
[SUB-PC-NUMBER5]
App[SUB_INFO] Key[SUB-PC-NUMBER]
ret=0 LastError=0
App[SUB_INFO] Key[SUB-PC-NUMBER2]
ret=12 LastError=0
[20110615-002]
App[SUB_INFO] Key[SUB-PC-NUMBER3]
ret=12 LastError=0
[20110615-003]
App[SUB_INFO] Key[SUB-PC-NUMBER4]
ret=12 LastError=0
[20110615 004]
App[SUB_INFO] Key[SUB-PC-NUMBER5]
ret=12 LastError=0
[20110615-005]
以下の事が分りました。
- App、KeyがNULLだと全てのセッション名をNULL区切りで取得する。
iniファイルに含まれるセッション名は「MAIN_INFO」(9文字)と「SUB_INFO」(8文字)です。
GetPrivateProfileStringの復帰値は19です。9+1+8+1で 19 になります。 - Appを指定し、KeyがNULLだとAppで指定したセッションに含まれるキー名をNULL区切りで取得する。
- App、Keyを指定するとKey=の後に書かれた文字列を改行まで取得する。
その際に前後の空白は無視される。
Copyright (C) 2012 ymlib.com