Q&A

  • Ini 파일에서....
안녕하세요. 이상한게 있어서 문의드립니다.

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의 값이 모두 지워집니다.

왜 그러죠?

1  COMMENTS
  • Profile
    술친구 2000.01.07 22:41
    고한석 wrote:

    > 안녕하세요. 이상한게 있어서 문의드립니다.

    > 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 로 작성하는게 맞는것 같군요..



    도움이 되셨기를...

    술친구였습니다.