`
heqing
  • 浏览: 22002 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
最近访客 更多访客>>
社区版块
存档分类
最新评论

标准C处理类似INI配置文件的键值型文档

阅读更多

      Linux下处理配置文档经常是个让人头痛的问题, 因为它不像Win32平台有INI文件处理的API或类对象, 这样, 我们就只能以字符流的方式来分析处理了, 下面的程序段实现了一个典型的处理配置文档的方法...

/* 
      读取并处理键值型文档
*/

char name[20];
byte age;
char sex[8];

int PropertyConfigurator (char *configFilename)
{         
      FILE* fp;        
      int i;         
      char line[256];         
      char* pstr=(char*)NULL;    
             
      if((fp = fopen(configFilename, "r")) == (FILE*)NULL) // configFileName是欲处理的配置文件名        
      {                 
            printf("Can not open configfile\n");                          // 是配置文档中的注释行                       
            return 0;        
      }       
       
      else         
      {                
            while(fgets(line, 256, fp) !=(char*)NULL)                
            {                                         
                  DeteteWhiteSpace(line);                                   // Delete spaces                                           
                  if(line[0] == '#');                                                    // '#' 是配置文档中的注释行
                        continue;
                  strupr(line);                                                          // Convert character to lowercase.

                  if(pstr = strstr(line, "NAME"))                             // Process key-value                        
                  {                                                             
                        pstr = strstr(line, '=');                               
                        DeteteWhiteSpace(++pstr);                               
                        strcpy(name, pstr);                         
                  }
                                                   
                  if(pstr = strstr(line, "AGE"))                                 // Process key-value                       
                  {                                                              
                        pstr = strstr(line, '=');                               
                        DeteteWhiteSpace(++pstr);                                
                        age = atoi(pstr);
                  }

                  else if((pstr = strstr(line, "SEX")))                     // Process key-value
                  {                                                                                      
                        pstr=strstr(line, '=');                                
                        DeteteWhiteSpace(++pstr);                                 
                        strcpy(sex, pstr);                        
                  }                 
            }        
      }
             
      fclose(fp);        
      return 1;
}

/*
      标准C不提供的两个函数
      itoa 将数字字符串转换成数值类型
      strupr 将字符串中的字符转换成大写
*/
char* itoa(long value, char *string)
{                              // Enough for a 128 bit integer
    if (string)
       sprintf(string, "%d", value);
    return string;
}

char* strupr(char *string)
{
   if (string != NULL)
    {
       char *cp;               // traverses string for C locale conversion */
       for (cp = string; *cp; ++cp)
        {
            if ('a' <= *cp && *cp <= 'z')
                *cp += 'A' - 'a';
        }
        return(string);
    }                         //C locale
   return NULL;                      
}

/*
      附加函数
      删除配置文档中的空行及空格    
*/
char* DeteteWhiteSpace(char* str)                // Delete space
{
        char strTemp[256];
        char strTemp2[256];
        unsigned int i,j;
        memset(strTemp, 0, 256);
        strcpy(strTemp2, str);
        j = 0;
        if (str != NULL)
        {
                for(i=0; i<strlen(str); i++)
                {
                        if (strTemp2[i] != ' ')
                        {
                                strTemp[j++] = strTemp2[i];
                        }
                }
        }
        strcpy(str, strTemp);
        return(str);
}

分享到:
评论

相关推荐

    纯C语言读写ini配置文件

    标题 "纯C语言读写ini配置文件" 描述的是一个使用C语言编写的程序,能够处理常见的ini配置文件。ini文件是一种简单的文本格式,通常用于存储应用程序的设置和配置信息。这种格式易于阅读和编辑,适合小型应用或系统...

    MFC读写ini配置文件

    **GetPrivateProfileString()** 是Windows API中的一个函数,用于读取.ini配置文件中的键值。它的基本语法如下: ```cpp LPCTSTR GetPrivateProfileString( LPCTSTR lpAppName, // 指向节名的指针 LPCTSTR ...

    ini配置文件操作类

    ini配置文件是Windows操作系统中常见的文本格式,用于存储应用程序的设置和配置信息。它们以键值对的形式组织数据,易于读写,结构清晰。本文将详细介绍如何使用“ini配置文件操作类”进行ini文件的读写操作,以及该...

    VC读写ini配置文档(无措版,C盘配置文件请自己建)

    ini配置文件是Windows系统中广泛使用的一种轻量级文本配置文件格式,用于存储应用程序的设置和参数。在VC++(Microsoft Visual C++)环境中,开发人员通常会使用API函数来读取和写入ini文件,以便在运行时保存和恢复...

    INI配置文件的源代码

    标题中的“INI配置文件的源代码”指的是使用VC++编程语言编写的源代码,用于处理INI配置文件。INI文件是一种简单的文本格式,常用于存储应用程序的设置和配置数据。它们通常包含键值对,其中键表示配置选项,值则...

    键值对形式配置文件操作实例

    以下是一些关于处理INI配置文件的关键知识点: 1. **解析配置文件**:解析配置文件通常涉及读取文件内容,识别配置节、键和值。这可以通过内置的库函数实现,例如在Python中,我们可以使用`configparser`模块。这个...

    C# ini文件操作工具类 亲测可用 超详细 带说明文档

    在IT行业中,C#是一种广泛使用的编程语言,尤其在...通过封装成工具类,可以简化这些操作,使得在实际项目中能够快速高效地处理ini配置文件。而`LToolIni`类的提供,无疑为C#程序员在处理ini文件时提供了极大的便利。

    ini 文件比较工具

    ini文件是一种常见的配置文件格式,主要用于存储用户设置和应用程序配置数据。它的结构简单,由键值对组成,分为多个节(sections)和项(items)。标题提到的“ini文件比较工具”是专为解决在比较两个ini文件时可能...

    Go-一个用于引入配置文件的包加载类似于ini风格的配置文件

    "Go-一个用于引入配置文件的包加载类似于ini风格的配置文件" 提供了一个解决方案,帮助开发者轻松处理类似ini格式的配置文件。ini文件是一种结构简单、易于阅读的文本配置文件格式,通常用于存储应用的设置。 1. **...

    VBA 读取本机ini配置文件

    Ini配置文件是一种简单的文本格式,常用于存储应用程序的设置和参数。 在VBA中读取本机ini配置文件,我们需要了解几个关键知识点: 1. **Ini文件结构**:Ini文件由一系列键值对组成,每个键值对代表一个设置。...

    Ini配置文件操作类库

    Ini配置文件操作类库是一种常见的程序设计工具,用于在应用程序中读取、写入和管理配置设置。INI文件是早期Windows系统中广泛采用的一种轻量级数据存储格式,至今仍被许多开发者用作简单的配置存储解决方案。这个...

    ini配置文件解析工具

    ini配置文件解析工具是一种小巧而简洁的程序,用于处理常见的.ini配置文件。这些文件通常用于存储应用程序的设置和参数,因为它们结构清晰,易于人类阅读和编辑。在本工具中,用户可以进行如注释处理、创建新的配置...

    ini 配置文件 C++

    这篇文档将详细介绍如何在C++中操作ini配置文件。 首先,ini文件是一种文本格式,通常包含多个节(Section)和键值对(Key-Value Pairs)。例如: ```ini [Section1] key1=value1 key2=value2 [Section2] key3=...

    C#操作ini配置文件

    C#提供了Settings类来管理这些配置信息,通常这些配置信息保存在配置文件中,比如app.config或web.config,而ini配置文件通常用于存储简单的键值对。 2. 应用程序设置的可视化操作 在Visual Studio中,通过项目属性...

    Go-mini-golang包解析ini风格配置文件

    1. **加载配置文件**:库提供了函数用于加载ini配置文件到内存中,例如`LoadConfigFile()`函数,它可以将指定路径的ini文件加载到内存,形成一个配置结构。 2. **获取键值对**:加载后,可以通过键来获取对应的值。...

    C++ INI配置文件.docx

    根据提供的文件信息,“C++ INI配置文件.docx”,我们可以推断出该文档主要讨论了如何使用C++语言处理INI格式的配置文件。虽然描述部分没有给出具体信息,但从标题和部分可见内容来看,这份文档可能包含了关于INI...

    LabVIEW 写入与读取配置文件

    1. .ini 文件:这是一种文本格式的配置文件,通常包含键值对,用于存储程序的设置。例如,你可以保存用户的界面偏好、设备连接信息等。LabVIEW提供了方便的函数库来处理这种文件类型。 2. .xml 文件:XML(可扩展...

    读取配置文件xml ,ini

    总的来说,Java提供了多种方式来处理XML和INI配置文件,选择哪种方法取决于具体的应用场景和性能需求。在实际开发中,理解这些工具的工作原理并灵活运用,可以帮助我们更有效地管理和读取配置信息。

    java ini.java操作ini文档

    在 Java 开发中,我们经常需要处理各种配置文件,其中 INI 文件是一种常见的格式,用于存储程序的配置参数。INI 文件以其简单明了的结构被广泛应用于 Windows 平台,但在其他操作系统中也有所应用。本文将深入探讨...

    window ce.net ini文件读写,纯c代码.rar

    在Windows CE .NET环境下,开发过程中常常需要处理配置文件,其中INI文件是一种常见的选择,因为它们结构简单且易于读写。这个压缩包“window ce.net ini文件读写,纯c代码.rar”提供了一组C语言编写的源码,用于在...

Global site tag (gtag.js) - Google Analytics