Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengekstrak Nombor Baris untuk Pilihan Fail INI Menggunakan Perpustakaan C?
Mencari Nombor Baris Pilihan Fail Ini Menggunakan C Libraries
Masalah:
Pembangun selalunya perlu mencari nombor baris di mana pilihan atau bahagian tertentu ditemui dalam fail INI. Maklumat ini boleh menentukan ralat atau membantu dalam mengurus konfigurasi.
C Library untuk INI File Parsing:
Penyelesaian Tersuai dengan Boost Spirit:
Penyelesaian tersuai yang dibentangkan di sini menggunakan rangka kerja parser Boost Spirit dan menyediakan nombor baris penuh maklumat.
Contoh Kod:
<code class="cpp">#include <boost/spirit/include/qi.hpp> #include <boost/spirit/include/support_line_pos_iterator.hpp> #include <map> #include <string> namespace qi = boost::spirit::qi; struct textnode_t { int sline, eline, scol, ecol; std::string text; }; // Define INI parser grammar qi::rule<boost::spirit::line_pos_iterator<std::string::const_iterator>, std::map<textnode_t, textnode_t>()> inifile;</code>
Dalam kod ini, textnode_t menyimpan nombor baris dan maklumat lajur, manakala inifile mentakrifkan tatabahasa untuk menghurai fail INI.
Penggunaan:
Muatkan fail INI ke dalam std::string bernama input dan lelaran melalui peta yang dihuraikan:
<code class="cpp">boost::spirit::line_pos_iterator<std::string::const_iterator> f(input.begin()), l(input.end()); std::map<textnode_t, textnode_t> data; qi::phrase_parse(f, l, inifile, qi::space, data); for (const auto& [k, v] : data) { std::cout << "Key: " << k.text << ", Line: " << k.sline << "\n" << "Value: " << v.text << ", Line: " << v.sline << "\n\n"; }</code>
Kelebihan Penyelesaian Tersuai:
Kesimpulan:
Dengan menggunakan Boost Spirit, anda boleh menghuraikan fail INI dan mendapatkan nombor baris dengan tepat. Fungsi ini penting untuk mengesahkan fail konfigurasi dan menyelesaikan isu konfigurasi.
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Nombor Baris untuk Pilihan Fail INI Menggunakan Perpustakaan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!