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

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

QVector, QVector<QString>, QString

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

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

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

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

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

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

Добрый день!

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

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

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


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

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

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

    QFile file("out.txt");
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
        return;
    
    QTextStream out(&file);
    for (const QString& str : TextArray)
        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

              Пікірлер

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

              Qt - Тест 001. Сигналы и слоты

              • Нәтиже:84ұпай,
              • Бағалау ұпайлары4
              Ua

              Qt - Тест 001. Сигналы и слоты

              • Нәтиже:42ұпай,
              • Бағалау ұпайлары-8
              ОК

              Qt - Тест 001. Сигналы и слоты

              • Нәтиже:47ұпай,
              • Бағалау ұпайлары-6
              Соңғы пікірлер
              ИМ
              Игорь МаксимовҚар. 22, 2024, 9:51 Т.Қ.
              Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
              Evgenii Legotckoi
              Evgenii LegotckoiҚаз. 31, 2024, 11:37 Т.Қ.
              Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
              A
              ALO1ZEҚаз. 19, 2024, 5:19 Т.Қ.
              Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
              ИМ
              Игорь МаксимовҚаз. 5, 2024, 4:51 Т.Қ.
              Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
              d
              dblas5Шілде 5, 2024, 8:02 Т.Қ.
              QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
              Енді форумда талқылаңыз
              f
              firstlunoxodАқп. 15, 2025, 1:46 Т.Қ.
              Рисование на QGraphicsScene при зажатой кнопке мыши Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
              Дмитрий
              ДмитрийАқп. 3, 2025, 4:24 Т.Қ.
              Создание deb-пакета. Как создать ярлык на рабочем столе после установки собственного deb-пакета? Всем привет. Сделал свой deb-пакет с программой. Всё устанавливается и работает. Ставлю по пути /usr/bin/my_application. Как для пользователя при установке пакета сразу создать ярлык на раб…
              NW
              Nayo WaiҚаң. 30, 2025, 7:22 Т.Қ.
              не запускается компьютер!!! Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
              n
              nklyҚаң. 3, 2025, 12:52 Т.Қ.
              Нужно запретить перемещение только некоторых итемов, остальные перемещать можно. Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
              M
              MarselТам. 17, 2023, 12:26 Т.Ж.
              OAuth2.0 через VK, получение email Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.

              Бізді әлеуметтік желілерде бақылаңыз