ini文件中我想得到每一个小节名,怎么办?

cyxlsm 2005-03-21 09:42:03
[一工位]
1=外检
2=废气
3=烟度
5=灯光
[二工位]
4=侧滑
6=声级
[三工位]
7=轴重
8=制动

我的ini文件如上,我想把小节的名字,“一工位,二工位,三工位”分别提出来赋给一个字符串变量,怎么呢?
...全文
175 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
原来还有这招,学习。
softbugg 2005-03-22
  • 打赏
  • 举报
回复
GetPrivateProfileSectionNames
lw549 2005-03-22
  • 打赏
  • 举报
回复
GetPrivateProfileSectionNames得到的是一个StringList,那么怎样把小节名字分开呢?

DelimitedText可以得到带分割符的字符串

分开的话,直接StringList[i]就可以

cyxlsm 2005-03-22
  • 打赏
  • 举报
回复
谢谢,GetPrivateProfileSectionNames得到的是一个StringList,那么怎样把小节名字分开呢?
QSmile 2005-03-22
  • 打赏
  • 举报
回复
GetPrivateProfileSectionNames
对就是这个。读到一个 StringList 里。
XuDunYu 2005-03-22
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
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.
cyxlsm 2005-03-22
  • 打赏
  • 举报
回复
谢谢:问题已解决:)
如下:

//获得工位信息
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);
cyxlsm 2005-03-22
  • 打赏
  • 举报
回复
lw549(那个孩子他爹):能给具体写个例子吗?GetPrivateProfileSectionNames的参数我不会写啊,谢谢!!
GARNETT2183 2005-03-21
  • 打赏
  • 举报
回复
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;
两个单引号那里是默认值,你可以自己设.
不好意思,前面打错了
GARNETT2183 2005-03-21
  • 打赏
  • 举报
回复
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;
两个单引号那里是默认值,你可以自己设.
  • 打赏
  • 举报
回复
如果有更好的办法就当我没说过。
  • 打赏
  • 举报
回复
加一个小节 [工作记录], 里面是A1=一工位,A2=二工位,A3=三工位...保持其有序,即a1,a2,a3...
用到时用循环读出。

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧