【问题标题】:Qt6 Splitting a QStringQt6拆分QString
【发布时间】:2021-11-20 20:09:39
【问题描述】:

*编辑:我试图在 QT6 中使用它 问题在于读取以逗号分隔的 CSV 文件,以及在引号中嵌入逗号。示例:

example.csv
this is a pole,"made by: you, me",quantity:1
this is a pole, made by: me,quantity:2

我想要做的是让它在单击按钮时打开 example.csv 和另一个包含价格或数量的 csv 文件并编辑 example.csv。我试过 split() bc 我读到你可以使用一个字符串作为 split 的参数,并尝试在分隔符的逗号后面添加一个 *,并将 ",*" 作为参数传递..但是它仍然在嵌入的逗号处分裂。

完成这项工作的最佳方法是什么?

【问题讨论】:

  • 我建议使用 CSV 解析库而不是编写自己的解析器
  • 我完全同意@AlanBirtles。 CSV 可能看起来是一种简单的文件格式,但突然之间你嵌入了字符串,其中可以包含逗号,甚至是嵌套的引号字符串,突然之间一切都变得非常复杂。您真的应该找到一个为您处理它的库,该库已经过测试,可以处理您想要阅读的文件。由于它是一种常见的格式,您可能会查看 Qt 框架中是否已经存在解析。

标签: c++ qt6


【解决方案1】:

Regex Solution 您可以在其中独占获取引号之间的值。假设您的 CSV 有一些结构。围绕预期的 CSV 格式和这个正则表达式创建一些逻辑应该很容易。

如果您正在使用 QT 并做一些前端工作。如果您还没有使用它,可能想查看QFile

这让我想起了编译器的词法分析器/解析器。您也可以四处寻找有关这些主题的资源。

【讨论】:

    猜你喜欢
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 2014-12-30
    • 2021-09-23
    • 1970-01-01
    相关资源
    最近更新 更多