Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архангельский М.В._2154_лаб.1.docx
Скачиваний:
16
Добавлен:
31.10.2023
Размер:
376.7 Кб
Скачать
  1. Используя объекты класса qTextStream, построчно считать содержимое текстового файла и вывести его в консоль.

Создам в папке с проектом файл с именем "here_is_the_text.txt", предварительно записав в него текстовую информацию.

Листинг 13. Содержание файла "main.cpp"

#include <QApplication> //подключили заголовочные файлы с определениями классов QApplication (приложение)

#include <QFile> // QFile (класс для проведения операций с файлами)

#include <QDebug>

int main(int argc, char *argv[ ])

{

QApplication app(argc, argv);

QFile file ("here_is_the_text.txt");

if(file.open(QIODevice::ReadOnly))

{

QTextStream stream(&file);

QString str;

while (!stream.atEnd())

{

str = stream.readLine();

qDebug() << str;

}

if(stream.status()!= QTextStream::Ok)

{

qDebug() << "Ошибка чтения файла";

}

file.close();

}

return app.exec( );

}

Рисунок 12. Вывод текстовой информации из файла " here_is_the_text.txt " в консоль.

  1. Повторить предыдущий пункт задания с использованием метода readAll(). Записать текстовую информацию в файл, предварительно отформатировав текст.

Создам в папке с проектом файл с именем "here_is_the_text.txt", предварительно записав в него текстовую информацию.

Листинг 14. Содержание файла "main.cpp"

#include <QApplication> // подключили заголовочные файлы с определениями классов QApplication (приложение)

#include <QFile> // QFile (класс для проведения операций с файлами)

#include <QBuffer> // QBuffer (позволяет записывать и считывать данные в массив QByteArray, как будто бы это устройство или файл)

#include <QDebug>

int main(int argc, char *argv[ ])

{

QApplication app(argc, argv);

QFile file("here_is_the_text.txt");

if(file.open(QIODevice::ReadOnly))

{

QTextStream stream(&file);

QString str = stream.readAll(); //Методом QTextStream::readAll() можно считать сразу весь текстовый файл в строку.

qDebug()<<str; // Вывод в консоль

if(stream.status()!= QTextStream::Ok)

{

qDebug() << "Ошибка чтения файла";

}

file.close();

}

/*Чтобы записать текстовую информацию в файл,

* необходимо создать объект класса QFile и воспользоваться оператором <<.

* Перед записью можно провести необходимые преобразования строки.*/

QFile file1("new.txt");

QString str = "Архангельский Максим БСТ-2154";

if (file1.open(QIODevice::WriteOnly))

{

QTextStream stream(&file1);

stream << str.toUpper(); //Запишем строку в верхнем регистре

file1.close();

if (stream.status() != QTextStream::Ok)

{

qDebug() << "Ошибка записи файла";

}

}

return app.exec( );

}

Рисунок 13. Вывод текстовой информации из файла " here_is_the_text.txt " в консоль.

Рисунок 14. Содержимое файла "new.txt" после выполнения программы.

Вывод:

В ходе выполнения лабораторной работы я изучил и на практике освоил работу с простейшими элементами управления в среде разработки Qt: создавал различные виджеты (кнопки, надписи), также создавал объекты классов QDate и QTime для работы с датой и временем, использовал события таймера и работал с объектами класса QFile для копирования содержимого одного бинарного файла в другой. Помимо прочего я, используя объекты класса QBuffer, осуществил вывод текстовой строки в консоль, и, используя объекты класса QTextStream, построчно считал содержимое текстового файла для вывода его в консоль.