首頁 > 後端開發 > C++ > 主體

如何使用 C 取得找到特定選項或部分的 INI 檔案的行號?

Linda Hamilton
發布: 2024-10-25 23:04:28
原創
258 人瀏覽過

How can I get the line number of an INI file where a specific option or section is found using C  ?

獲取找到給定選項的INI 文件行號的跨平台方法

問題:

尋找一個C 函式庫(如boost::program_options),它可以傳回找到給定選項或部分的INI 檔案的行號。

用例:

  1. 要求庫在「[SSS]」部分中尋找值「vvv」。庫應傳回在「[SSS]」部分中找到「vvv」的行號或-1。例如,這允許我們說「第 55 行:vvv 必須
  2. 迭代 INI 檔案中的部分並驗證它們的名稱。當發現未知部分時,我們可以報告「第55 行:部分[哈哈哈]未知。」

回應:

利用Boost 的可能性Spirit,使用line_pos_iterator 制定了解決方案。

實作細節:

  • POSITIONSINFO = 0:

      傳輸。
    • 輸出是原始字串格式,或map>>對於部分。
  • POSITIONSINFO = 1:

      輸入已緩衝。
    • 輸出位於textnode_t 格式:
      這使得產生的地圖>報告各個文本元素的確切行和列文本元素的確切行和列文本元素的確切行和列文本元素的確切行和列文本元素的確切行和列文本元素的確切行和列文本元素的確切行和列文本元素的確切行和列文本元素的確切行和列文本元素的起始點和結束點。
    • 註解(#, /
    • ... / 樣式)已實作。
    • 空格是可以容忍。
    • 斜線轉義留作練習。
    • 啟用後會報告錯誤並提供完整的位置資訊。

代碼片段:

其他資源:

    [包含完整程式碼、makefile 和example.ini 的要點]( https://gist.github.com/1425972)
  • [Boost Spirit 文件](https://www.boost.org/doc /libs/1_65_1/libs/spirit/doc/)

重要提示:提供的解決方案不需要C 11 支持,但它用於轉儲解析結果。

以上是如何使用 C 取得找到特定選項或部分的 INI 檔案的行號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!