[一工位]
1=外检
2=废气
3=烟度
5=灯光
[二工位]
4=侧滑
6=声级
[三工位]
7=轴重
8=制动我的ini文件如上,我想把小节的名字,“一工位,二工位,三工位”分别提出来赋给一个字符串变量,怎么呢?

解决方案 »

  1.   

    加一个小节 [工作记录], 里面是A1=一工位,A2=二工位,A3=三工位...保持其有序,即a1,a2,a3...
    用到时用循环读出。
      

  2.   

    var
    var a1,a2,a3,a4,a5,a6,a7,a8,a9:String;
    begin
              //一工位
              a1:=inifile.ReadString('一工位','1','');
              a2:=inifile.ReadString('一工位','2','');
              a3:=inifile.ReadString('一工位','3','');
              a4:=inifile.ReadString('一工位','5','');
              //二工位 部分
              a5:=inifile.ReadString('一工位','4,'');
              a6:=inifile.ReadString('一工位','6','');
              //三工位 部分
              a7:=inifile.ReadString('一工位','7','');
              a8:=inifile.ReadString('一工位','5','');
    end;
    两个单引号那里是默认值,你可以自己设.
      

  3.   

    var
    var a1,a2,a3,a4,a5,a6,a7,a8,a9:String;
    begin
              //一工位
              a1:=inifile.ReadString('一工位','1','');
              a2:=inifile.ReadString('一工位','2','');
              a3:=inifile.ReadString('一工位','3','');
              a4:=inifile.ReadString('一工位','5','');
              //二工位 部分
              a5:=inifile.ReadString('二工位','4,'');
              a6:=inifile.ReadString('二工位','6','');
              //三工位 部分
              a7:=inifile.ReadString('三工位','7','');
              a8:=inifile.ReadString('三工位','8','');
    end;
    两个单引号那里是默认值,你可以自己设.
    不好意思,前面打错了
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls, ComCtrls, DB, DBTables,  inifiles;type
      TForm1 = class(TForm)
        Button1: TButton;
        ListBox1: TListBox;
        ListBox2: TListBox;
        ListBox3: TListBox;
        procedure Button1Click(Sender: TObject);
        procedure ListBox2Click(Sender: TObject);
        procedure ListBox3DblClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
    implementation
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      r: TIniFile;
    begin
      r := Tinifile.Create('e:\windows\necdev.ini');
      listbox1.items.LoadFromFile('e:\windows\necdev.ini');
      r.ReadSections(listbox2.items);
      r.ReadSection(listbox2.items[0],listbox3.Items);
      listbox2.SetFocus;
      listbox2.ItemIndex := 0;
      r.Free;
    end;procedure TForm1.ListBox2Click(Sender: TObject);
    var
      r: TIniFile;
    begin
      r := Tinifile.Create('e:\windows\necdev.ini');
      r.ReadSection(listbox2.items[listbox2.ItemIndex],listbox3.Items);
      r.Free;
    end;procedure TForm1.ListBox3DblClick(Sender: TObject);
    var
      r: TIniFile;
      s:string;
    begin
      r := Tinifile.Create('e:\windows\necdev.ini');
      s := r.Readstring(listbox2.items[listbox2.ItemIndex],listbox3.Items[listbox3.ItemIndex],'');
      showmessage(s);
      r.Free;
    end;end.
      

  5.   

    GetPrivateProfileSectionNames
    对就是这个。读到一个 StringList 里。
      

  6.   

    谢谢,GetPrivateProfileSectionNames得到的是一个StringList,那么怎样把小节名字分开呢?
      

  7.   

    GetPrivateProfileSectionNames得到的是一个StringList,那么怎样把小节名字分开呢?DelimitedText可以得到带分割符的字符串分开的话,直接StringList[i]就可以
      

  8.   

    lw549(那个孩子他爹):能给具体写个例子吗?GetPrivateProfileSectionNames的参数我不会写啊,谢谢!!
      

  9.   

    谢谢:问题已解决:)
    如下://获得工位信息
              filename:=ExtractFilePath(paramstr(0))+'workset.ini';
              workfile:=TIniFile.Create(filename);          s:=Tstringlist.Create ;
              //str:=s[0];          //获得工位数
              workfile.ReadSections(s);//得到小节标题列表
              showmessage(inttostr(s.count));
              str:=s[0];
              showmessage(str);