C++ Builder /BCB 读取配置文档

本人初学C++ Builder不就,也算是做个学习总结吧!

下面给所以下如何读取配置文档。

1. 假设我们在一个名为 temp的文件夹下建立一个BCB工程,其中有 一个名字为  setup.ini (.TXT或者其他格式的文本文档都行)的配置文档,其内容为:

//内容

[CfgIni]

AutoRun=1

AutoClose =0

[StrIni]

StringName = Hello

//end

2. 现在我们用C++ Builder读取其中的内容,并依照内容作相应的动作。

 1)我们在窗口上放上两个按钮 Button1和Button2 ,再放一个文本框Memo1.

 2)快速双击窗口,在窗口创建事件中加入代码


//---------------------------------------------------------------------------


#include <vcl.h>
#pragma hdrstop


#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormCreate(TObject *Sender)
{
    Memo1->Clear();
    Edit1->Text = "";
    AnsiString BasePath = GetCurrentDir();  //获取当前路径
    TIniFile *ini = new TIniFile(BasePath + "\\Setup.ini");    //加载配置文档到内存
    CfgIniFile.AutoClose = ini->ReadInteger("CfgIni","AutoClose",8);  //读文档数字  //没读到,自动赋值为8
    CfgIniFile.AutoRun   = ini->ReadInteger("CfgIni","AutoRun",9);    //读文档数字 //没读到,自动赋值为9
    CfgIniFile.StringName =ini->ReadString("StrIni","StringName","NO");  //读文档字符  //没读到,自动赋值为"NO"
    delete ini;


    if(9 == CfgIniFile.AutoRun)
        Memo1->Lines->Add("没有读到AutoRun的值");
    if(8 == CfgIniFile.AutoClose)  
        Memo1->Lines->Add("没有读到AutoClose的值");
    if(0 == CfgIniFile.StringName.AnsiCompare("NO") )
        Memo1->Lines->Add("没有读到StringName的值");
        
    if(1 == CfgIniFile.AutoRun)
    {
        Button1->Click();
        Memo1->Lines->Add("自动运行");
    }
    else
       Memo1->Lines->Add("手动运行");


}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Edit1->Text = "点击了Button1按钮";
    if(0 == CfgIniFile.StringName.AnsiCompare("Start") )
    {
        Memo1->Lines->Add("String=="+CfgIniFile.StringName);
    }
    if(1 == CfgIniFile.AutoClose)
    {
        Button2->Click();
        ShowMessage("即将自动关闭");
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{


   Form1->Close();
}
//---------------------------------------------------------------------------


//---------------------------------------------------------------------------

/头文件//
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>


#include "IniFiles.hpp"
//---------------------------------------------------------------------------
typedef struct
{
  int AutoRun;
  int AutoClose;
  AnsiString StringName;
}INI;
class TForm1 : public TForm
{
__published: // IDE-managed Components
        TMemo *Memo1;
        TButton *Button1;
        TButton *Button2;
        TEdit *Edit1;
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall Button2Click(TObject *Sender);
private: // User declarations
public: // User declarations
        __fastcall TForm1(TComponent* Owner);


        INI CfgIniFile;
        
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值