프로그래밍을 하다 보면 특정 환경 변수라던지 어떠한 값을 저장할 필요성이 있다.
예를 들어 DB 커넥션 정보라던지 ..
이럴때 레지스트리를 사용하거나 XML을 사용하거나 많은 방법이 있는데 그중에 손쉽게 ini 파일을 사용하여
저장 할 수 있다.
예) DB 접속 정보 저장:TNS, ID, PASSWORD 를 파일 정보에 넣어 놓고 읽고 갱신 할 수 있도록 해보자.
--걍 따라만 해도 됨.ㅋㅋ
1. iniUtil 이라는 클래쓰를 만들어 ini 관련 메소드를 구성해 놓자.(iniUtil.cs)
이 클래쓰 파일에 대해 크게 고민하지 말고 필요한 인자 값이 무엇인지 살펴보고 고대로 구성만 하면 되겠다.
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;
namespace INI{
class iniUtil
{
private string iniPath;
public iniUtil(string path)
{
this.iniPath = path; //INI 파일 위치를 생성할때 인자로 넘겨 받음
}
[DllImport("kernel32.dll")]
private static extern int GetPrivateProfileString( // GetIniValue 를 위해
String section,
String key,
String def,
StringBuilder retVal,
int size,
String filePath);
[DllImport("kernel32.dll")]
private static extern long WritePrivateProfileString( // SetIniValue를 위해
String section,
String key,
String val,
String filePath);
// INI 값을 읽어 온다.
public String GetIniValue(String Section, String Key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section, Key, "", temp, 255, iniPath);
return temp.ToString();
}
// INI 값을 셋팅
public void SetIniValue(String Section, String Key, String Value)
{
WritePrivateProfileString(Section, Key, Value, iniPath);
}
}
}
2. 필요한 곳에서 만들어 놓았던 iniUtil 의 객체를 생성해서 써보자.
- 파일 경로는 지금 프로그램이 실행 되고 있는곳으로 맞춰 놓고 사용하자. ini 파일 이름을 config.ini 로 가정한다면..
//현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
FileInfo exefileinfo = new FileInfo(Application.ExecutablePath);
string path = exefileinfo.Directory.FullName.ToString() //프로그램 실행되고 있는데 path 가져오기
string fileName = @"\config.ini"; //파일명
//만약 현재 실행 되는 경로가 아닌 특정한 위치를 원한다면 위에 과정 상관없이 바로
경로셋팅 해 주면 된다. (예: c:\config.ini)
string filePath = path+fileName; //ini 파일 경로
iniUtil ini = new iniUtil(filePath); // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
//이제 ini 객체를 이용해 맘것 사용하면 된다.
//값 셋팅하기
첫번째 인자: 섹션값(대분류로 생각하면 편함)
두번째 인자: 키값(구분값으로 생각)
세번째 인자: 실제 들어갈 값
ini.SetIniValue("Oracle", "OracleUser" , "아이디");
ini.SetIniValue("Oracle", "OraclePassword" , "패스워드");
ini.SetIniValue("Oracle", "TnsName" , "TNS 이름");
// 이렇게 하면 실제 config.ini 파일에는 아래처럼 저장 된다.
[Oracle] //첫번째 인자로 들어온 섹션값(대분류)
OracleUser=아이디
OraclePassword=패스워드
TnsName=TNS 이름
//값 가져와 사용하기
첫번째 인자: 섹션값(대분류로 생각하면 편함)
두번째 인자: 키값(구분값으로 생각)
string OracleUser = ini.GetIniValue("Oracle", "OracleUser");
string OraclePassword = ini.GetIniValue("Oracle", "OraclePassword");
string TnsName = ini.GetIniValue("Oracle", "TnsName");
'C# & ASP.NET' 카테고리의 다른 글
비주얼 스튜디오 2008 에서 모바일 웹폼 생성하기(visual studio 2008 mobile webform) (0) | 2009.09.03 |
---|---|
C# 에서 FTP 사용하기 (4) | 2009.08.11 |
쿠키값 한글 깨질때 조치법~ (0) | 2009.07.22 |
페이지에서 한글이 깨지거나 파라메터 한글이 깨질때.. (0) | 2009.07.21 |
OLEDB 로 DBASE (.DBF) 연결하여 테이블 생성 및 SELCET 쿼리 날려 DataSet,DataTable로 가져오기 (0) | 2009.06.30 |