Q&A

  • ini파일 관련...
안녕하세요.
ini파일에서 key값을 삭제하고 싶어서..
deletekey함수를 사용했습니다.

그런데 제 ini파일의 내용이 대충 아래와 같습니다.

progname[1]=LocationPASP
progname[2]=LocationPNGEL
progname[3]=LocationPVAS
progname[4]=Edit1
progname[7]=Edit1
progname[8]=pp

key를 배열로 잡아서 값을 할당했습니다.

LogIniFile.deletekey('PROG_NAME', 'LocationPVAS');
이렇게 하면 세번째 배열의 키값이 삭제되지 않나요?
아무런 반응이 없네요.. .
아시는분...답좀 주세요. 제가 하고자 하는 것은... = 뒤에 있는 key값만
인자로 주어서 삭제하고 싶거든요. . 전체를 하려고 하면... 배열의 인덱스
값을 맞추기가 힘들어서요. 다른 방법이 있다면..좀   알려주시구여..>^^
3  COMMENTS
  • Profile
    KDDG_RepleMan 2002.05.15 03:02
    DeleteKey 명령어가 잘못 사용된 듯.
    LogIniFile.deletekey('PROG_NAME', 'LocationPVAS');
    ===>
    LogIniFile.deletekey('PROG_NAME', 'progname[3]');

    문제는 'LocationPVAS'의 값을 가지는 항목명 'progname[3]'를 찾는 것.

    님의 ini 파일 구조가 아래와 같을때

    [PROG_NAME]  
    progname[1]=LocationPASP  
    progname[2]=LocationPNGEL
    progname[3]=LocationPVAS
    progname[4]=Edit1
    progname[7]=Edit1
    progname[8]=pp


    //프로그램 내용========================
    var
       sValue: string;
       i : integer;
    ...
    begin
    ...

       i := 0;
       sValue := '';
       // 지우고자하는 값을 가지고 있는 항목명 찾기
       repeat
          i := i + 1;
          sValue := LogIniFile.ReadString('PROG_NAME', 'progname['+ IntToStr(i) + ']', '');
       until sValue = 'LocationPVAS';

       // 해당 값을 가지고 있는 항목 전체 삭제
       //LogIniFile.DeleteKey('PROG_NAME', 'progname['+ IntToStr(i) + ']');
      
       // 해당 되는 키값만 삭제하는 경우
       LogIniFile.WriteString('PROG_NAME', 'progname['+ IntToStr(i) + ']', '');
    ....

    답변이 되었기를...

  • Profile
    강기철 2002.05.15 05:07
    힘들군여..^^
    그래도..이렇게 답변해주시는 분들이 계셔서..힘이 납니다.
    다시 한번 감사를 드립니다.
    좋은 날들 되시길...^^
  • Profile
    신동묵 2002.05.15 01:05
    제가 알기론 deletekey함수는 항목과 값을 모두 삭제 하는 걸로 알고 있습니다.
    뒤의 값만 삭제 하시려면 그냥 그 자리에 ''(공백)를 넣으시면 될것 같네요