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

