http://whiteat.com/zbxe/31905 에서 하나의 섹션으로 처리를 해보았습니다.
하지만 많은 데이터가 있을 경우 이 방법은 관리하기에 매우 비효율적입니다.
그래서 2개 이상의 섹션으로 만들어 보았습니다.
전체 소스
중요 코드
public frmMain() { InitializeComponent(); txtName1.Text = GetProfileString("사람1", "txtName", string.Empty, 255, m_strPath); txtAge1.Text = GetProfileString("사람1", "txtAge", string.Empty, 255, m_strPath); txtAddr1.Text = GetProfileString("사람1", "txtAddr", string.Empty, 255, m_strPath); txtName2.Text = GetProfileString("사람2", "txtName", string.Empty, 255, m_strPath); txtAge2.Text = GetProfileString("사람2", "txtAge", string.Empty, 255, m_strPath); txtAddr2.Text = GetProfileString("사람2", "txtAddr", string.Empty, 255, m_strPath); } private void txtName1_TextChanged(object sender, EventArgs e) { WritePrivateProfileString("사람1", "txtName", txtName1.Text, m_strPath); } private void txtAge1_TextChanged(object sender, EventArgs e) { WritePrivateProfileString("사람1", "txtAge", txtAge1.Text, m_strPath); } private void txtAddr1_TextChanged(object sender, EventArgs e) { WritePrivateProfileString("사람1", "txtAddr", txtAddr1.Text, m_strPath); } private void txtName2_TextChanged(object sender, EventArgs e) { WritePrivateProfileString("사람2", "txtName", txtName2.Text, m_strPath); } private void txtAge2_TextChanged(object sender, EventArgs e) { WritePrivateProfileString("사람2", "txtAge", txtAge2.Text, m_strPath); } private void txtAddr2_TextChanged(object sender, EventArgs e) { WritePrivateProfileString("사람2", "txtAddr", txtAddr2.Text, m_strPath); } private string GetProfileString(string section, string key, string def, int size, string filePath) { StringBuilder temp = new StringBuilder(255); int i = GetPrivateProfileString(section, key, def, temp, size, filePath); return temp.ToString(); }
생성된 INI 파일
사람1과 사람2가 구분되어 저장됩니다.
[사람1]
txtName=사람1
txtAddr=주소1
txtAge=나이1
[사람2]
txtName=이름2
txtAddr=주소2
txtAge=나이2
txtName=사람1
txtAddr=주소1
txtAge=나이1
[사람2]
txtName=이름2
txtAddr=주소2
txtAge=나이2