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 <eldiener@tropicsoft.com> 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 <boost/property_tree/ptree.hpp>
#include <boost/property_tree/ini_parser.hpp>
#include <boost/filesystem/fstream.hpp>

int main()
{

   boost::property_tree::ptree pt;
   boost::property_tree::ini_parser::read_ini("input.ini", pt);
   std::cout << pt.get<std::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-users