Q&A

  • IniFile에서 KeyName을 TEdit에 나타내려 할때..
안녕하세요..!! 델초보입니다.
다름이 아니오라 TreeView에서 선택한 노드의 IniFile에 있는 Section과 KeyName을
Tedit에 나타내려고 합니다.

다행히 TreeView에서 선택한 노드(Section)은 Tedit에 맞게 나오는데...

선택한 노드(Section)에 맞는 KeyName이 나오질 않습니다..
아래는 소스를 첨부 하였으니..한번 보시고 고수님끼서 지적해 주시기 바랍니다.

Tests.ini
==================================================================================
[경기도]       ---> TreeView root 노드
파주시=조리면  ---> 파주시 ( root의 자식노드) = 조리면 (파주시의 키값)
고향시=일산동
.
.
[서울시]
마포구=망원동
강남구=양재동
.
.
임의수 계속
==================================================================================
TreeView
==================================================================================
경기도
   파주시  --> 예를 들어 파주시를 선택하고 팝업메뉴를 클릭하면 창이 뜨면서
   고향시      거기에 있는 TEdit1, 2에 파주시와 파주시에 해당하는KeyName (조리면)
               이 나와야 하는데 나오지가 않습니다.
서울시          물론, 아래 다른 마포구, 강남구등 임의의 자식노드를 선택하면 거기에
   마포구      해당하는 노드와 KeyName이 TEdit에 표시 되어야 합니다.
   강남구
.
.
==================================================================================  



procedure TForm1.Delete1Click(Sender: TObject);
var
FileName: string;
IniFile : TIniFile;
Sections, Section, KeyNames: TStringList;
SectionsCount, SectionCount, KeyCount : Integer;
SectionName : String;
begin
   FileName := 'c:Testtests.ini';
   IniFile := TIniFile.Create(FileName);
   Sections := TStringList.Create;
   Section  := TStringList.Create;
   KeyNames := TStringList.Create;

   try
     IniFile.ReadSections(Sections);
     for SectionsCount := 0 to Sections.Count-1 do
     begin
         IniFile.ReadSection(Sections[SectionCount], Section);
         for SectionCount := 0 to Section.Count-1 do
         begin
             Form5.Rly_P_IP.Text := TreeView1.Selected.Text;

             Form5.Rly_P_Ex.Text := IniFile.ReadString(Sections[SectionCount], TreeView1.Selected.Text,KeyNames.Text);
         end;
     end;
   finally
     IniFile.Free;
     Sections.Free;
     KeyNames.Free;
   end;

   Form5.ShowModal;
end;
2  COMMENTS
  • Profile
    최용일 2002.07.30 19:12
    안녕하세요. 최용일입니다.

    그냥 바로 IniFile에서 읽으시면 되는데... 트리뷰의 Selected.Text에 키값(파주시)가 들어 있고 Selected.Parent.Text에 섹션값 경기도가 들어있으니까 다나온거죠...

    TreeView1.Selected.Text => 파주시
    TreeView1.Selected.Parent.Text => 경기도

    var
        FileName: string;
        IniFile: TIniFile;
        SectionName, KeyName, ValueName : String;
    begin
        FileName := 'c:Testtests.ini';
        IniFile := TIniFile.Create(FileName);
        try
            SectionName := TreeView1.Selected.Parent.Text;
            KeyName := TreeView1.Selected.Text;
            ValueName := IniFile.ReadString(SectionName, KeyName, '');
            Form5.Rly_P_IP.Text := KeyName;
            Form5.Rly_P_Ex.Text := ValueName;
        finally
            IniFile.Free;
        end;
        Form5.ShowModal;
    end;

    ^^ 항상 즐코하세요...

  • Profile
    최수림 2002.07.30 19:43
    감사합니다..!! ^__^ 자꾸 왜..전 어렵게 다리를 건너려 하죠..^__^
    오늘도 무지 덥네요..!! 오늘 하루 멋지고 알찬 하루 보내세요..!!^^
    =====================================================================