안녕하세요. 이상한게 있어서 문의드립니다.
ini파일에 이런식으로 정의되어 있을때,
[combobox]
no=1
combobox1=3@1.abc@2.bcd@3.def@,
아래와 같이 코딩하면 이상한 결과가 나오는데...
readini := TInifile.Create('c:formtemp.tmp');
temp := fcombo.combobox1.text;
inivalue := readini.ReadString('combobox','temp','null');
Messagedlg(temp,mtwarning,[mbok],0);
Messagedlg(inivalue,mtwarning,[mbok],0);
여기서 temp의 값은 combobox1 이라는 문자값입니다.
ini파일에 대한 선언은 모두 되어있읍니다.
이렇게 하여 메세지 다이얼로그의 값을 확인하면
inivalue에 "3@1.abc@2.bcd@3.def@,"가 들어가야 되는데.
inivalue의 값이 null로 나옵니다. 그리고 ini파일의 combobox1의 값이 모두 지워집니다.
왜 그러죠?
> 안녕하세요. 이상한게 있어서 문의드립니다.
> ini파일에 이런식으로 정의되어 있을때,
>
> [combobox]
> no=1
> combobox1=3@1.abc@2.bcd@3.def@,
>
> 아래와 같이 코딩하면 이상한 결과가 나오는데...
>
> readini := TInifile.Create('c:formtemp.tmp');
> temp := fcombo.combobox1.text;
> inivalue := readini.ReadString('combobox','temp','null');
> Messagedlg(temp,mtwarning,[mbok],0);
> Messagedlg(inivalue,mtwarning,[mbok],0);
>
> 여기서 temp의 값은 combobox1 이라는 문자값입니다.
> ini파일에 대한 선언은 모두 되어있읍니다.
> 이렇게 하여 메세지 다이얼로그의 값을 확인하면
>
> inivalue에 "3@1.abc@2.bcd@3.def@,"가 들어가야 되는데.
> inivalue의 값이 null로 나옵니다. 그리고 ini파일의 combobox1의 값이 모두 지워집니다.
> 왜 그러죠?
inivalue := readini.ReadString('combobox','temp','null'); 이부분을
다음과 같이 고쳐보세요..
inivalue := readini.ReadString('combobox', temp,'null');
위의 'temp' 는 ini파일 안에있는 Ident 가 temp 인 값을 가져옵니다.
그러니 없으면 Default 값인 null 을 가져오죠..
그러나 지금 구하는 것은 temp라는 Ident 가 아닌 temp 변수 안에 있는 값의 Ident
를 구하는 것이므로 'temp' 가 아닌 temp 로 작성하는게 맞는것 같군요..
도움이 되셨기를...
술친구였습니다.