Михаиллл
Қаз. 26, 2018, 7:46 Т.Қ.

QVector<QString> запись в файл и чтение из файла

QVector, QVector<QString>, QString

Здравствуйте. Как записать в файл QVector<QString> , учитывая что каждый элемент массива будет разной длины и иметь различный набор символов.

Вот пример того, что пытаюсь записать:

  1. QVector<QString> TextArray;
  2. TextArray.append("Text0, test0");
  3. TextArray.append("Text1, test1");
  4. TextArray.append("Text2, test2");

2

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

6
Evgenii Legotckoi
  • Қаз. 26, 2018, 7:53 Т.Қ.

Добрый день!

Для чего именно вы пытаетесь учитывать длину, и насколько разный должен быть набор символов?

Возможно, что вам достаточно будет каждый раз на новой строке всё записывать.

Или возможно... можно использовать вообще JSON формат, тогда всё будет легко парситься и будет иметь чёткую структуру. Уточните эти моменты, пожалуйста.


    Evgenii Legotckoi
    • Қаз. 26, 2018, 8:04 Т.Қ.

    Я к чему спрашиваю, почему нужно длину учитывать. По сути, если вам нужна организация данных в добавку, раз вы длину решили учитывать, то возможно, что лучше будет использовать JSON формат, тогда вам не придётся учитывать длину.

    Если нет, то можно и так сделать

    1. QFile file("out.txt");
    2. if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
    3. return;
    4.  
    5. QTextStream out(&file);
    6. for (const QString& str : TextArray)
    7. out << str << "\n";

    Тогда следуя из вашего примера, должун получиться файл с шестью строками.


      Михаиллл
      • Қаз. 26, 2018, 8:55 Т.Қ.

      Не нужно учитывать длину, просто она может быть разной. К примеру каждый элемент массива может быть стихотворением.

      Прочитал про JSON, ведь там элементы массива разделяются запятой, а в тексте будет много запятых и наверно выйдет больше элементов массива и они исказятся.







        Evgenii Legotckoi
        • Қаз. 26, 2018, 9:03 Т.Қ.

        На самом деле в JSON наличие запятых в тексте не является проблемой за счёт его структуры. Это не исказит и не испортит данных, если использовать средства Qt, а не писать свой парсер, там всё отлажено.

        После работы накидаю пример сегодня. Там ничего сложного нет.

          Evgenii Legotckoi
          • Қаз. 26, 2018, 9:05 Т.Қ.

          К слову говоря. JSON используется для хранения данных во многих NO-SQL базах данных, MongoDB, Redis и т.д. и в том числе для хранение крупных текстов и проблем с запятыми не возникает.

            Evgenii Legotckoi
            • Қаз. 27, 2018, 3:40 Т.Ж.

            Вот пример работы с JSON в Qt, надеюсь, что вам это поможет.

            Статья о QJsonDocument, QJsonObject, QJsonArray

              Пікірлер

              Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
              Кіріңіз немесе Тіркеліңіз