Click here to Skip to main content
13,287,343 members (52,841 online)
Click here to Skip to main content
Add your own
alternative version


13 bookmarked
Posted 22 Aug 2006

INI Manipulation using C

, 22 Aug 2006
Rate this:
Please Sign up or sign in to vote.
Using C to read and write INI file
Sample Image - Screen.jpg


This project uses C and linklist to implement and manage INI files. This project is a sample of linklist implementation.

Sample Usage

buffer = get_value("Main","PLC");
printf("value : %s\n",buffer);
printf("last error is %s\n",get_last_error());

How To Implement

This project uses linklist to make a sample tree for collecting INI file data. INI file in this project must separate using "=". This is a sample function to manage INI file.

/* main ini manage function                                             */
 *    function: ini_start                                                        
 *    parameter:                                                        
 *        @filename                                                            
 *    return:    true if success
 *    purpose: for start ini manipulate file
bool ini_start(const char* filename);

 *    function:    load                                                    
 *    parameter:                                                        
 *        @filename                                                            
 *    return:        true if success
 *    purpose:    for load ini file to content

bool load(const char *filename);

 *    function:    _save                                                    
 *    parameter:                                                        
 *        @filename                                                            
 *    return:        true if success
 *    purpose:    save content to ini file(save as)
bool save();    // save to load filebool 
bool save_as(const char *filename);

 *    function:    get_value                                                    
 *    parameter:                                                        
 *        @                                                            
 *    return:        value
 *    purpose:    ?                                                    
char *get_value (const char *sec,const char *key);
char *_get_value(const char *sec,const char *key,   // return data and comment
                 char *comment);
 *    function:    set_value
 *    parameter:                                                        
 *        @                                                            
 *    return:        true if success
 *    purpose:            
bool set_value  (const char *sec,const char *key,        // will auto replace
                 const char *value);    
bool _set_value (const char *sec,const char *key,    // select replace or not replace
                 const char *value,const char *comment,REPLACE_FLAG flag);

int  remove_sel (const char *sec,char *key);
int  remove_all (const char * sec);                // remove all record in section

// add/remove section
void add_section(const char *sec,const char *comment);    // add section
int  remove_section(char *sec);  	// remove section (remove all record 
				// in section if not empty)

void clear();                                	// clear all content

// size of section
int  content_size();
int  section_size(char *sec);

// for console display use stdio.h stdout
void print_content();                        	// print all content
void print_section();                        	// print all only section
void print_record(char *sec,char *key);   	// print selection record
void print_allrecord(char *sec);            	// print all record in section

 *    function: ini_end                                                    
 *    parameter:                                                        
 *        none                                                                    
 *    return:    void                                                        
 *    purpose: for end ini manipulate file
void ini_end();
void _ini_end(REPLACE_FLAG flag);

 *    function: get_last_error
 *    parameter:                                                        
 *        none                                                            
 *    return:    type of error   
 *    purpose:    for get error      
char *get_last_error();


  • 22nd August, 2006: Initial post


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Web Developer
Thailand Thailand
C++,Window,Linux Programming
Measurement and Control System.

You may also be interested in...


Comments and Discussions

GeneralThank for comment Pin
TooBaya22-Aug-06 21:49
memberTooBaya22-Aug-06 21:49 
GeneralRe: Thank for comment Pin
DaTxomin22-Aug-06 21:56
memberDaTxomin22-Aug-06 21:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.171207.1 | Last Updated 23 Aug 2006
Article Copyright 2006 by TooBaya
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid