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

Чтение данных из файла

14.02.2011, 21:44. Показов 18974. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго всем времени суток.
Я еще тока начинаю осваивать Qt да и С++, так что просьба больно не пинать и направить в нужном направлении...
собрал из разных примеров програмку которая по выбору пункта меню выполняет кусок кода:

C++
1
2
3
4
5
6
7
8
9
10
11
QFile fp (str);    //  str - массив с полным путем к текстовому файлу возвращенный QFileDialog
    fp.open(QIODevice::ReadOnly);
    QTextStream in(&fp);
    int temp[20000];
    int i=0;
    while (!in.atEnd()){
        in >> temp[i];
        ui->lcd->display(temp[i]);   // этот LCD просто вставил для попытки отследить значения массива - безрезультатно
        i++;
 
    }
данное безобразие я вставляю в слот который вызывается при нажатии на пункта меню, сам слот работает нормально ( проверял на изменении какого нибудь текстого лейбла)
суть задачи считать данные из файла вида:

46546
45665
13254
15894


которые в дальнейшем планируется обрабатывать математически (это значения ординат на графике)
их у меня в файле от 15000 до 18000, но не больше 20000, поэтому я ограничился таким массивом.
единственное на что меня хватило что что-то с типами считываемых данных не в порядке, не уверен что идет преобразование в int, но это голые догадки, в общем уповаю на вас...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2011, 21:44
Ответы с готовыми решениями:

Qt чтение данных из файла
Здравствуйте, помогите пожалуйста считать данные из файла в QTableWidget.

Чтение данных из файла в массив
Здравствуйте! Есть двумерный массив short mas, который записывается в бинарный файл. Подскажите,...

Чтение данных из бинарного файла в массив
Доброго всем времени суток. Мне нужно было прочитать из бинарного файла данные в массив int...

Чтение массива бинарных данных из файла средствами QT
Всем доброго времени суток. Возникла такая проблема. Из бинарного файла нужно прочитать около 1...

8
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
14.02.2011, 21:51 2
У тебя бинарный или текстовый файл???
если текстовый где преобразования если бинарник где флаг?
С уважением Валерий
0
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 11
14.02.2011, 21:57  [ТС] 3
Файл текстовый.
пробовал явное приведение:

C++
1
2
3
QString line;
in >> line;
temp[i] = (int) line;

но чтото не срослось ((, видимо Qtшная строка на прямую не хочет преобразовываться или я что-то не до конца понял в приведениях типов

error: invalid cast from type ‘QString’ to type ‘int’

вот так ругается компилятор на выше предложенное приведение
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
14.02.2011, 22:08 4
разумеется не приведется используй atoi или scanf
Для получения числа из строки
1
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 11
14.02.2011, 22:39  [ТС] 5
попробовал через atoi, но это Сишная функция и тип QString не понимает (((
немножко погуглив узнал о существовании Qtшного преобразования .toInt();
в итоге прога заработала, огромное спасибо за помощь
0
99 / 99 / 14
Регистрация: 14.06.2010
Сообщений: 284
14.02.2011, 23:16 6
C++
1
QString string; string.toInt();
а почему бы не сразу считывать в переменную int
0
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 11
14.02.2011, 23:23  [ТС] 7
Цитата Сообщение от dxdy Посмотреть сообщение
C++
1
QString string; string.toInt();
а почему бы не сразу считывать в переменную int
В дальнейшем скорее всего буду сразу считывать, но пока для наглядности оставлю в таком виде:


C++
1
2
3
4
5
     while (!in.atEnd()){
        in >> line;
        temp[i] = line.toInt();
       i++;
    }
0
2 / 2 / 0
Регистрация: 20.10.2010
Сообщений: 21
16.02.2011, 15:10 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    QFile file("C:\\Qt\\2010.05\\qt\\FileReader-build-desktop\\debug\\in.txt");
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        qDebug() <<  "Cannot open a file";
    }
 
    int array[10];
    int i = 0;
    QTextStream in(&file);
    while (!in.atEnd())
    {
        array[i] = in.readLine().toInt();
        ++i;
    }
1
99 / 99 / 14
Регистрация: 14.06.2010
Сообщений: 284
16.02.2011, 15:54 9
Yur4e, если документ не открылся, то можно уходить из функции, например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    QFile file("C:\\Qt\\2010.05\\qt\\FileReader-build-desktop\\debug\\in.txt");
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        qDebug() <<  "Cannot open a file";
        return -1;
    }
 
    int array[10];
    int i = 0;
    QTextStream in(&file);
    while (!in.atEnd())
    {
        array[i] = in.readLine().toInt();
        ++i;
    }
0
16.02.2011, 15:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2011, 15:54
Помогаю со студенческими работами здесь

Чтение бинарного файла - чтение первых 9 байт
Есть код, который читает первые 9 байт бинарного файла(заголовок записи) void...

Чтение файла CSV и чтение из Table View
Здравствуйте, задача считать столбцы и строки excel в TextEdit. Прошу помощи в реализиции. ...

Вывод из файла в QTableWidget, построчное чтение с конца файла
Привет! Делаю первые шаги в Qt, собственно поэтому без проблем никуда. Моя задача на данный...

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0 В этой папке лежит...


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

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