藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月6日 10:18


在sco unix環境下 使用c語言怎樣寫.ini文件

在sco unix環境下 使用c語言怎樣寫.ini文件

在sco unix環境下 使用c語言怎樣寫.ini文件

??

到了哪兒也是文件啊。
有什麼不一樣麼?

在sco unix環境下 使用c語言怎樣寫.ini文件

不明白,
fopen("zhansan.init","w")

不行嗎?

在sco unix環境下 使用c語言怎樣寫.ini文件

如果想偷懶,那麼可用用orient類庫(我寫的 :D ),別向我要源碼 8)

[code]
orient類庫中提供了ini文件接口類TIni。
配置文件操作類TIni提供了對ini文件的常用操作函數,包括讀取和修改,如讀取文件、保存文件、讀取key值、設置key值等,同時提供了組的操作。
頭文件 cini.h
LoadFile(char * filename);得到文件的內容數據;對文件的操作,先在內存進行
TIniSet * GetSet(char * grpname集合名稱),根據名稱取一個集合指針
TIniSet * AddSet(char * grpname集合名稱,char * comment集合註釋);添加一個集合
int RemoveSet (char * grpname);        函數功能:根據集合名稱刪除一個集合
int AddItem(char * grpname,char * item條目名稱,char * key條目的值,char * comment條目的註釋),在集合裡添加一個條目
int SetKey(char * grpname,char * item,char * key);        函數功能:設置一個條目的值
void RemoveKey(char * grpname,char * item,char * key);        函數功能:根據值刪除一個條目
void RemoveItem(char * grpname,char * item);        函數功能:根據名稱刪除一個條目
IniItemStru * GetItem(char * grpname,char * item);        函數功能:根據名稱取一個條目
char * GetKey(char * grpname,char * item);        函數功能:根據名稱取一個條目的值
char * GetKey(char * ininame,char * grpname,char * item);        函數功能:根據名稱取一個條目的值
int SaveToFile(char * filename要保存的文件名);更新配置文件,將內存信息寫回文件。

void Exam_TIni()
{
TIni ini;
TIniSet * set;

  printf("*********************************************************************\n");
  printf("* 下面是 Exam_TIni 的例子                                           *\n");
  printf("*********************************************************************\n\n");
  printf("TIniSet * TIni::AddSet(char * grpname,char * comment)\n");
  printf("函數功能:添加一個集合\n\
    傳入參數:\n\
      grpname: 集合名稱\n\
      comment: 集合註釋\n\
    返回參數:\n\
      成功:集合指針\n\
      失敗:NULL\n");
  set=ini.AddSet("general","系統信息");
  if(set==NULL)
  {
    printf("add set fail\n");
    return;
  }
  else
    printf("add set ok\n\n");

  printf("int TIni::AddItem(char * grpname,char * item,char * key,char * comment)\n");
  printf("函數功能:在集合裡添加一個條目\n\
    傳入參數:\n\
      grpname: 集合名稱\n\
      item: 條目名稱\n\
      key: 條目的值\n\
      comment: 條目的註釋\n\
    返回參數:\n\
      成功 1\n\
      失敗 0\n");
  if(!ini.AddItem("general","serialno","ABCDEFG","序列號"))
    printf("add item fail\n");
  else
    printf("add item ok\n");
  if(!ini.AddItem("general","resmgrnum","1","管理器數量"))
    printf("add item fail\n");
  else
    printf("add item ok\n");
  if(!ini.AddItem("general","mintermid","1000","最小終端流水"))
    printf("add item fail\n");
  else
    printf("add item ok\n");
  if(!ini.AddItem("general","maxtermid","1000","最大終端流水"))
    printf("add item fail\n");
  else
    printf("add item ok\n\n");
  set=ini.AddSet("resmgrip","資源管理器IP");
  if(set==NULL)
  {
    printf("add set fail\n");
    return;
  };
  set=ini.AddSet("resmgrport","資源管理器PORT");
  if(set==NULL)
  {
    printf("add set fail\n");
    return;
  };

  printf("int TIni::SaveToFile(char * filename)\n");
  printf("函數功能:更新配置文件\n\
    傳入參數:\n\
      filename: 要保存的文件名\n\
    返回參數:\n\
      0 保存失敗 \n\
      1 保存成功\n");
  if(!ini.SaveToFile("test.ini"))
    printf("save to file fail\n\n");
  else
    printf("save to file ok\n\n");

  printf("int TIni::LoadFile(char * filename)\n");
  printf("函數功能:打開配置文件\n\
    傳入參數:\n\
      filename: 要打開的文件名\n\
    返回參數:\n\
      成功: 1\n\
      失敗: 0\n");
  if(!ini.LoadFile("test.ini"))
    printf("load file fail\n\n");
  else
    printf("load file ok\n\n");

  printf("int TIni::RemoveSet(char * grpname)\n");
  printf("函數功能:根據集合名稱刪除一個集合\n\
    傳入參數:\n\
      grpname: 集合名稱\n\
    返回參數:\n\
      成功:1\n\
      失敗:0\n");
  if(!ini.RemoveSet("resmgrport"))
    printf("remove set fail\n\n");
  else
    printf("remove set ok\n\n");

  printf("int TIni::SetKey(char * grpname,char * item,char * key)\n");
  printf("函數功能:設置一個條目的值\n\
    傳入參數:\n\
      grpname: 集合名稱\n\
      item: 條目名稱\n\
      key: 條目的值\n\
    返回參數:\n\
      成功 1\n\
      失敗 0\n");
  if(!ini.SetKey("general","serialno","00C6G0A162W3EUR0I024"))
    printf("setkey fail\n\n");
  else
    printf("setkey ok\n\n");

  printf("void TIni::RemoveKey(char * grpname,char * item,char * key)\n");
  printf("函數功能:根據值刪除一個條目\n\
    傳入參數:\n\
      grpname: 集合名稱\n\
      item: 條目名稱\n\
      key: 條目的值\n\
    返回參數:\n");
  ini.RemoveKey("general","mintermid","1000");
  puts("");

  printf("void TIni::RemoveItem(char * grpname,char * item)\n");
  printf("函數功能:根據名稱刪除一個條目\n\
    傳入參數:\n\
      grpname: 集合名稱\n\
      item: 條目名稱\n\
    返回參數:\n");
  ini.RemoveItem("general","maxtermid");
  puts("");

  printf("char * TIni::GetKey(char * grpname,char * item)\n");
  printf("函數功能:根據名稱取一個條目的值\n\
    傳入參數:\n\
      grpname: 集合名稱\n\
      item: 條目名稱\n\
    返回參數:\n\
      成功:條目的值\n\
      失敗:NULL\n");
  char * ptr;
  ptr=ini.GetKey("general","serialno");
  if(ptr==NULL)
    printf("cant get key of serialno[general]\n\n");
  else
    printf("get key of serialno[general] ok: '%s'\n\n",ptr);

  printf("int TIni::GetItemKey(char * grpname,char * item,char * pkeyval)\n");
  printf("函數功能:根據名稱取一個條目的值\n\
    傳入參數:\n\
      grpname: 集合名稱\n\
      item: 條目名稱\n\
      pkeyval: 用於存放條目值的內存指針\n\
    返回參數:\n\
      成功:1,同時把條目的值存放在pkeyval的內存中\n\
      失敗:0\n");
  char sn[200];
  if(!ini.GetItemKey("general","serialno",sn))
    printf("cant get key of serialno[general]\n\n");
  else
    printf("get key of serialno[general] ok: '%s'\n\n",sn);


  if(!ini.SaveToFile("test.ini"))
    printf("save to file fail\n\n");
  else
    printf("save to file ok\n\n");
};
[/code]

在sco unix環境下 使用c語言怎樣寫.ini文件

謝謝老大

在sco unix環境下 使用c語言怎樣寫.ini文件

http://sourceforge.net/projects/inilib/
看看是否合用。

在sco unix環境下 使用c語言怎樣寫.ini文件

-->     
是免費的嗎?

在sco unix環境下 使用c語言怎樣寫.ini文件

自己看不就知道了



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com