본문 바로가기
카테고리 없음

C# ini 파일 class

by 멍멍돌이야 2009. 8. 27.
반응형
* C# ini 파일 class



using System;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;

namespace Jaedo.Core.Util
{

///
/// TIniFile
/// Window INI 파일을 다루기 위한 클레스
///
///

public class CIniFile
{
///
/// ini 파일명을 저장
///

private string INIFileName;

///
/// ini 파일을 지정하거나 가져올때 쓰는 속성
///

public string FileName
{
get { return INIFileName; }
set { INIFileName = value; }
}
///
/// 생성자 : 사용할 ini 파일을 지정
///

/// 사용할 파일명
public CIniFile(string FileName)
{
INIFileName = FileName;
}
///
/// ini 파일에서 정보를 가져오기 위한 API 기초 함수
///

[DllImport("kernel32.dll")]
private static extern int GetPrivateProfileString(
string section,
string key,
string def,
StringBuilder retVal,
int size,
string filePath);
///
/// ini 파일에서 정보를 쓰기위한 위한 API 기초 함수
///

[DllImport("kernel32.dll")]
private static extern long WritePrivateProfileString(
string section,
string key,
string val,
string filePath);
///
/// ini 파일에 정보를 기록하기 위한 함수
///

/// 섹션명
/// 키 명
/// 기록할 값
private void _IniWriteValue(string Section, string Key, string Value)
{
WritePrivateProfileString(Section, Key, Value, INIFileName);
}
///
/// ini 파일에 정보를 가져오기 위한 함수
///

/// 섹션명
/// 키 명
/// 가져온 값
private string _IniReadValue(string Section, string Key)
{
StringBuilder temp = new StringBuilder(2000);
int i = GetPrivateProfileString(Section, Key, "", temp, 2000, INIFileName);
return temp.ToString().Trim();
}
///
/// 문자열 타입으로 값을 기록한다
///

/// 섹션명
/// 키 명
/// 기록 할 문자열
public void SetString(string Section, string Key, string Value)
{
_IniWriteValue(Section, Key, Value.Trim());
}
///
/// 정수 타입으로 값을 기록한다
///

/// 섹션명
/// 키 명
/// 기록 할 정수값
///
public void SetInteger(string Section, string Key, int Value)
{
_IniWriteValue(Section, Key, Value.ToString().Trim());
}
///
/// 논리 타입으로 값을 기록 한다.
///

/// 섹션명
/// 키 명
/// 기록 할 논리 값
public void SetBoolean(string Section, string Key, bool Value)
{
_IniWriteValue(Section, Key, Value ? "1" : "0");
}
///
/// 논리 타입으로 값을 가져온다
///

/// 섹션명
/// 키 값
/// 기본값
/// 가져온 논리값
public bool GetBoolean(string Section, string Key, bool def)
{
bool temp = def;
string stTemp = _IniReadValue(Section, Key);
if (stTemp == "") return def;
if (stTemp.Trim() == "1") return true;
else return false;
}
///
/// 문자열로 값을 가져 온다
///

/// 섹션명
/// 키 명
/// 가져온 문자열
public string GetString(string Section, string Key)
{
return _IniReadValue(Section, Key).Trim();
}
///
/// 정수 타입으로 값을 가져 온다
///

/// 섹션명
/// 키 명
/// 기본값
/// 가져온 정수값
public int GetInteger(string Section, string Key, int def)
{
int temp = def;
string stTemp = _IniReadValue(Section, Key);
if (stTemp == "") return def;
try
{
temp = int.Parse(stTemp.Trim());
}
catch (Exception)
{
return def;
}
return temp;
}
}
}
728x90
반응형

댓글