С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 3
1

Как открыть текстовый файл в textedit

08.02.2016, 17:59. Показов 3099. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, дорогие друзья. Не хотелось бы показаться совсем глупым, но мне нужна помощь. Задача состоит в следующем. Есть текстовый файл, который необходимо открыть в textedit, тоесть необходимо нажать кнопку browse и в появившемся диалоговом окне выбрать нужный нам текстовый файл. После выбора файла он должен отобразиться в окне textedit. Редактировать файл в textedit не планируется. Текстовый файл представляет собой заголовки после которых идет набор данных. Данные идут ввиде массива из 5 столбцов и n-го количества строк. Так вот предполагается, что после отображения текстового файла в textedit, его нужно будет записать в один единый массив с известным количеством строк. Тоесть по нажатии кнопки "сконвертировать" текстовый файл читается построчно, где определяются его заголовки. После заголовка мы понимаем что имеем дело с массивом, читаем данные и натыкаемся на следующий заголовок после которого идут те же самые массивы с данными. Необходимо записать только все определенные массивы данных без заголовков в том же виде как они идут и передать их в textedit2. После чего по нажатии 3 кнопки "сохранить" записать данные в новый текстовый файл. Я буду очень благодарен если сможете написать алгоритм и инструменты, которые необходимо будет применить, а там я попробую все это запилить. Если что то не будет получаться буду обращаться к вам. Но прежде хочется самому помучиться. Спасибо за внимание. Надеюсь на вашу помощь.

Добавлено через 3 часа 26 минут
Ребята, подкиньте идею для реализации. Оччч прошу!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
08.02.2016, 17:59
Ответы с готовыми решениями:

Как открыть текстовый файл?
Можете сделать пример главного окна открыть txt фаил? Qt 4.8 Ничерта не пашет с 4 книг. Менял коды...

открыть документ рэндомно в textedit QML
Добрый вечер.Имеется в папке 10 файлов с расширением *.html. Как рэндомно, по нажатию на клавишу,...

Записать в текстовой файл текст из TextEdit, и некоторых других элементов
Очень прошу помощи. Необходимо записать в текстовой файл текст из TextEdit, значение QSpinBox,...

Как сделать отступ в TextEdit?
Здравствуйте. Читаю я значения в строку. Строка имеет вид "some names\n also name \n another...

2
1 / 1 / 4
Регистрация: 09.02.2016
Сообщений: 8
09.02.2016, 20:48 2
Ты очень расплывчато написал про необходимый формат.
Открывает файл, ищет заголовок, начинает построчно разбивать на массивы по пять, потом когда строка не удовлетворяет, то запушивает эту матрицу 5xN в вектор 'parsed' и идет до следующего заголовка и начинает парсить с него

Кликните здесь для просмотра всего текста
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
QFile file(QFileDialog::getOpenFileName(this, "Select File"));
 
if (file.open(QFile::ReadOnly)) {
    if (file.isReadable()) {
        QVector<QVector<QVector<QString> > > parsed; // vector of qstring matrices
        QVector<QVector<QString> > current; // qstirng matrix
        QString header = "HEADER";
        bool inHeader = false;
 
        QTextStream in(&file);
        while (true) {
            // если мы в конце, но при этом у нас последняя строчка тоже была в хедере
            if (in.atEnd()) {
                if (inHeader) {
                    parsed.append(current);
                }
                break;
            }
 
            QString line = in.readLine();
            if (line == header) { // проверка на начало заголовка
                if (inHeader) { // очищаем перед этим текущий и запушиваем его в вывод
                    parsed.append(current);
                    current.clear();
                } else {
                    inHeader = true;
                }
                continue; // пропускаем линию заголовка
            }
            if (inHeader) { // если сейчас парсится заголовок
                QVector<QString> lvector = line.split(' ').toVector();
                // проверяем строку на валидность, иначе заканчиваем текущий заголовок
                if (lvector.size() == 5 && line != header /* && another_test */) {
                    current.append(lvector);
                } else {
                    inHeader = false;
                    parsed.append(current);
                    current.clear();
                }
            }
 
        }
        qDebug() << parsed.size();
        file.close();
    } else {
        QMessageBox::warning(this, "Can't open file", "File is not readable");
    }
}
0
720 / 680 / 110
Регистрация: 29.05.2015
Сообщений: 4,099
09.02.2016, 22:27 3
Цитата Сообщение от Renchik Посмотреть сообщение
Ребята, подкиньте идею для реализации. Оччч прошу!
Да всё просто очень. Берёшь форму, mainwindow или widget. Креатором ставишь в неё две кнопки и textedit. По нажатию первой кнопки открываешь файл и выводишь в textedit. По нажатию второй переформатируешь свой текст как тебе нужно (заголовки выбрасываешь там...) и записываешь в файл. Что непонятно то? Какая тут идея нужна?
0
09.02.2016, 22:27
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
09.02.2016, 22:27
Помогаю со студенческими работами здесь

как связать текстовый файл и ListView
Есть текстовый файл. В нем в каждой строчке путь и название mp3 файла. Количество строк может...

Как открыть файл .ast?
есть файлик типа .ast (MS Access открывает), как его запустить в своем коде?

Как открыть .html файл
Здравствуйте. Как открыть .html файл? Делаю так, но картинка превращается в странные серые...

Как открыть текстовый файл в с++
В общем, прошу помочь понять эту часть. Задача состоит в том, что нужно разработать программу,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru