Reading & Parsing an .ini input file using BOOST... ..!!
All,
Need small help. I have an "input.ini" input file which contains sample
values like –
---
App=| 5000 | 5001 | 0 | | | | 1BYTE |
---
Starting with word (viz. App), followed by equal sign, than data within
pipes (|) and blank space between two pipes ( | | ). Anything only between
two pipes is to be read.
I am looking to parse this input file. After parsing, assign each data to
struct member type and than send this complete struct as socket.
I am looking to use Boost property tree (or the needed one) and finally the
ASIO to send the complete filled struct as stream.
I tried below code to read complete data and it worked but -
---
#include <iostream>
#include
On 10/22/2013 7:52 PM, Rahul Mathur wrote:
All,
Need small help. I have an "input.ini" input file which contains sample values like –
---
App=| 5000 | 5001 | 0 | | | | 1BYTE |
---
Starting with word (viz. App), followed by equal sign, than data within pipes (|) and blank space between two pipes ( | | ). Anything only between two pipes is to be read.
I am looking to parse this input file. After parsing, assign each data to struct member type and than send this complete struct as socket.
I am looking to use Boost property tree (or the needed one) and finally the ASIO to send the complete filled struct as stream.
I tried below code to read complete data and it worked but -
--- #include <iostream> #include
#include #include int main() {
boost::property_tree::ptree pt; boost::property_tree::ini_parser::read_ini("input.ini", pt); std::cout << pt.getstd::string("App") << std::endl; } ---
But, how to read between pipes?
Look at Boost tokenizer library. Or use standard regex or Boost regex depending on what your compiler supports.
Let me tell you, w/o knowing characteristics about .ini file I manually
created a input.ini file like an oridinary .txt or .log file and thought to
try if it can be parsed entirely like normal file. Let me know, if I can
manually write in .ini file as one of my READ file where I try READING
entire LINE until end rather in "key, value" of .ini format.
Also, what could be the best and fastest way to large (~ 5KB) files on
Linux with GNU compilers and Boost-v1.54. Is memory-mapped files the
fastest way or iostream or boost.spirit?
On Wed, Oct 23, 2013 at 6:12 AM, Edward Diener
On 10/22/2013 7:52 PM, Rahul Mathur wrote:
All,
Need small help. I have an "input.ini" input file which contains sample values like –
---
App=| 5000 | 5001 | 0 | | | | 1BYTE |
---
Starting with word (viz. App), followed by equal sign, than data within pipes (|) and blank space between two pipes ( | | ). Anything only between two pipes is to be read.
I am looking to parse this input file. After parsing, assign each data to struct member type and than send this complete struct as socket.
I am looking to use Boost property tree (or the needed one) and finally the ASIO to send the complete filled struct as stream.
I tried below code to read complete data and it worked but -
--- #include <iostream> #include
#include #include int main() {
boost::property_tree::ptree pt; boost::property_tree::ini_**parser::read_ini("input.ini", pt); std::cout << pt.getstd::string("App") << std::endl; } ---
But, how to read between pipes?
Look at Boost tokenizer library. Or use standard regex or Boost regex depending on what your compiler supports.
______________________________**_________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/**mailman/listinfo.cgi/boost-**usershttp://lists.boost.org/mailman/listinfo.cgi/boost-users
On Tue, Oct 22, 2013 at 9:01 PM, Rahul Mathur
Linux with GNU compilers and Boost-v1.54. Is memory-mapped files the fastest way or iostream or boost.spirit?
You must have intended to write different units. 5KB isn't large.
Thanks all. I was able to make out. Sometimes exploring C (strtok) also
works well.
On Wed, Oct 23, 2013 at 8:32 PM, Nat Goodspeed
On Tue, Oct 22, 2013 at 9:01 PM, Rahul Mathur
wrote: Also, what could be the best and fastest way to large (~ 5KB) files on
Linux with GNU compilers and Boost-v1.54. Is memory-mapped files the fastest way or iostream or boost.spirit?
You must have intended to write different units. 5KB isn't large.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
On Oct 22, 2013, at 8:42 PM, Edward Diener
wrote: On 10/22/2013 7:52 PM, Rahul Mathur wrote: All,
Need small help. I have an "input.ini" input file which contains sample values like –
---
App=| 5000 | 5001 | 0 | | | | 1BYTE |
---
Starting with word (viz. App), followed by equal sign, than data within pipes (|) and blank space between two pipes ( | | ). Anything only between two pipes is to be read.
I am looking to parse this input file. After parsing, assign each data to struct member type and than send this complete struct as socket.
I am looking to use Boost property tree (or the needed one) and finally the ASIO to send the complete filled struct as stream.
I tried below code to read complete data and it worked but -
--- #include <iostream> #include
#include #include int main() {
boost::property_tree::ptree pt; boost::property_tree::ini_parser::read_ini("input.ini", pt); std::cout << pt.getstd::string("App") << std::endl; } ---
But, how to read between pipes?
Look at Boost tokenizer library. Or use standard regex or Boost regex depending on what your compiler supports.
Or algorithm::split http://www.boost.org/doc/libs/1_54_0/doc/html/boost/algorithm/split_idp54600...
participants (4)
-
Edward Diener
-
Gordon Woodhull
-
Nat Goodspeed
-
Rahul Mathur