반응형

INI 파일 라이브러리(Leksys' INI Parser https://github.com/Lek-sys/LeksysINI )를 사용하여 INI 파일을 생성하고 값을 읽고 쓰는 예제입니다. 

깃허브에서 iniparser.hpp 파일만 가져오면 예제를 동작시킬 수 있습니다. 


2021. 01. 24 최초작성




#include <iostream>
#include <windows.h>
#include <atlconv.h>
#include "iniparser.hpp"


std::string get_current_path()
{
wchar_t path[MAX_PATH] = { 0 };
GetModuleFileName(NULL, path, MAX_PATH);

USES_CONVERSION;
std::string str = W2A(path);
str = str.substr(0, str.find_last_of("\\/"));

return str;
}

int main()
{
std::string path = get_current_path();
std::string fullpath = path + "\\config.ini";


INI::File ft;

ft.GetSection("FTP")->SetValue("ip", "192.168.0.100");
ft.GetSection("FTP")->SetValue("port", "21");
ft.GetSection("FTP")->SetValue("id", "webnautes");
ft.GetSection("FTP")->SetValue("password", "1234");
ft.Save(fullpath);


if (!ft.Load(fullpath))
{
std::cout << "설정파일이 존재 하지 않습니다.\n" << std::endl;
}

std::string ret;

// 설정값을 못읽었을 경우 디폴트값으로 -1 지정
std::string ip = ft.GetSection("FTP")->GetValue("ip", -1).AsString();
std::string port = ft.GetSection("FTP")->GetValue("port", -1).AsString();
std::string id = ft.GetSection("FTP")->GetValue("id", -1).AsString();
std::string password = ft.GetSection("FTP")->GetValue("password", -1).AsString();

std::cout << "ip = " << ip << std::endl;
std::cout << "port = " << port << std::endl;
std::cout << "id = " << id << std::endl;
std::cout << "password = " << password << std::endl;

}



ip = 192.168.0.100

port = 21

id = webnautes

password = 1234




실행파일이 있는 위치에 INI 파일이 다음 내용으로 생성됩니다. 





반응형

해보고 확인한 것을 문서화하여 기록합니다.


공부한 내용을 공유하는 공간입니다.
부족함이 있지만 도움이 되었으면 합니다.
잘못된 부분이나 개선점을 알려주시면 감사하겠습니다.



포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
문제가 생기면 포스트와 바뀐 환경이 있나 먼저 확인해보세요.

질문을 남겨주면 가능한 빨리 답변드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">