SORU
30 Mayıs 2011, PAZARTESİ


Nasıl otelinde ayrıştırma Artırmak için dosya

Gibi bazı örnek değerleri içeren bir ını dosya var:

[Section1]
Value1 = 10
Value2 = a_text_string

Bu değerler yüklemeye çalışıyorum ama C bunu nasıl anlamıyorum Boost ile benim uygulama yazdırabilirsiniz .

Aradım içinde ths forum bulabilmek için bazı örnekler (hep kullanılan C ve çok çok iyi değilim C ) ama bulduğum tek örnekleri hakkında nasıl okuma değerleri dosyasından tek seferde.

İstediğim zaman sadece tek bir değer yüklemek için, dize gibi = Section1 ihtiyacım var.Okumama gerek yok çünkü değer2 değerleri, ama sadece bunlardan birkaçı.

Benim uygulamada istediğim zaman onları kullanmak için tek bir değer yüklemek ve değişken içinde saklamak istiyorum.

Olası Destek ile bunu yapmak için değil mi?

Şu anda bu kodu kullanıyorum:

#include <iostream>
#include <string>
#include <set>
#include <sstream>
#include <exception>
#include <fstream>
#include <boost/config.hpp>
#include <boost/program_options/detail/config_file.hpp>
#include <boost/program_options/parsers.hpp>

namespace pod = boost::program_options::detail;

int main()
{
   std::ifstream s("file.ini");
    if(!s)
    {
        std::cerr<<"error"<<std::endl;
        return 1;
    }

    std::set<std::string> options;
    options.insert("Test.a");
    options.insert("Test.b");
    options.insert("Test.c");

    for (boost::program_options::detail::config_file_iterator i(s, options), e ; i != e;   i)
        std::cout << i->value[0] << std::endl;
   }

Ama bu sadece okuduğum tüm değerleri bir döngü; aksine sadece okumak ister tek değerler zaman, istediğim ve ihtiyacım yok eklemek için değerleri dosyası, çünkü zaten yazılı olan tüm değerleri ihtiyacım var benim program.

:) Teşekkürler

CEVAP
30 Mayıs 2011, PAZARTESİ


Ayrıca Boost kullanabilirsiniz.PropertyTree okumak için .ını dosyaları:

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/ini_parser.hpp>

...

boost::property_tree::ptree pt;
boost::property_tree::ini_parser::read_ini("config.ini", pt);
std::cout << pt.get<std::string>("Section1.Value1") << std::endl;
std::cout << pt.get<std::string>("Section1.Value2") << std::endl;

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Artorius FullPower

    Artorius Ful

    29 Temmuz 2007
  • LiveForGodsKingdom

    LiveForGodsK

    6 NİSAN 2008
  • Living Waters

    Living Water

    9 AĞUSTOS 2006