1x
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 9
1

Чтение из фаила txt

25.03.2012, 09:07. Показов 1280. Ответов 10
Метки нет (Все метки)

Привет всем. Решил написать прогу которая читает координаты из фаила и рисует график. Запарелся целую ночь сидел так и не смог прочитать координаты можете подсказать в чём ошибка?(весь форум перерыл)

C++
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
void window::OpenFile()
{
    QFileDialog::Options options;
    QString selectedFilter;
    fileName = QFileDialog::getOpenFileName(this,
                                tr("Open file"),
                                openlabel->text(),
                                tr("Text Files (*.txt)"),
                                &selectedFilter,
                                options);
    if (!fileName.isEmpty())
    {
        openlabel->setText(fileName);
 
    }
 
}
 
 
void window::ReadFile()
{
    QFile File (fileName);
    if(!File.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QMessageBox::information(this,tr("File not open\n"),File.errorString());
    }
    QTextStream in(&File);
  
  //    a = in.readLine(); пробовал и так не чего не вышло
    in >> a;
    a=labeltest->text();// для контроля прочитал он что то или нет
 
 
 }
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2012, 09:07
Ответы с готовыми решениями:

Чтение из фаила txt
Привет всем! помогите с чтением из фаила в фаиле записаны числа в два столбца как их считать в два...

чтение из фаила
У меня такая прога(ну веренее это отрывок), вобщем при ее выполнении должно происходить следующее:...

чтение с фаила
есть фаил с такими данными то есть это вещественные числа:...

Получение данных с txt фаила на сервере
Добрый день. Пишу консольное приложение на С++, . Допустим есть http:..сайт/test.txt . Нужно с...

10
Почетный модератор
11220 / 4174 / 418
Регистрация: 12.06.2008
Сообщений: 12,056
25.03.2012, 09:26 2
А в каком виде координаты там записаны?
Цитата Сообщение от 1x Посмотреть сообщение
пробовал и так не чего не вышло
Не скомпилировалось? Или результаты были не правильные?

Цитата Сообщение от 1x Посмотреть сообщение
a=labeltest->text();// для контроля прочитал он что то или нет
Это ты не переменную "a" читаешь, а наоборот ей присваиваешь сразу другое значение. Поэтому ты и не видишь результата. Тогда надо
C++
1
labeltest->setText(a);
0
1x
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 9
25.03.2012, 10:02  [ТС] 3
Цитата Сообщение от Humanoid Посмотреть сообщение
А в каком виде координаты там записаны?

Не скомпилировалось? Или результаты были не правильные?


Это ты не переменную "a" читаешь, а наоборот ей присваиваешь сразу другое значение. Поэтому ты и не видишь результата. Тогда надо
C++
1
labeltest->setText(a);
координаты обычные числа (12.31 12 3 -4 ...)
Всё скомпилировалось просто не читает.Даже с той поправкой.

Добавлено через 21 минуту
всё тогда прочитал а так теперь не хочет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void window::ReadFile()
{
    QFile File (fileName);
    if(!File.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QMessageBox::information(this,tr("File not open\n"),File.errorString());
    }
    QTextStream in(&File);
 
   QTimer *timer = new QTimer(this);
   timer->start(1000);
 
   while(!in.atEnd())
    {
 
        a = in.readLine();
     //   in >> a;
        labeltest->setText(a);
        connect(timer, SIGNAL(timeout()), this, SLOT(Repaint()));
 
 
    }
    File.close();
}
Добавлено через 5 минут
Точнее он читает самую последнюю цифорку
0
Почетный модератор
11220 / 4174 / 418
Регистрация: 12.06.2008
Сообщений: 12,056
25.03.2012, 10:33 4
Цитата Сообщение от 1x Посмотреть сообщение
Точнее он читает самую последнюю цифорку
Читает он все строки по очереди... просто в labeltest остаётся последнее значение.
0
1x
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 9
25.03.2012, 10:34  [ТС] 5
Цитата Сообщение от Humanoid Посмотреть сообщение
Читает он все строки по очереди... просто в labeltest остаётся последнее значение.
Так там же таймер стоит он говорит прочитал выполни действие. Что не так?
0
Автор FAQ
2728 / 1424 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
25.03.2012, 10:58 6
connect вынеси из циклa
и что делает слот Repair?
0
1x
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 9
25.03.2012, 11:08  [ТС] 7
Перерисовывает график кода подается точка , то есть мне нужно каждый раз перерисовывать его.

Добавлено через 6 минут
Цитата Сообщение от Чистый Посмотреть сообщение
connect вынеси из циклa
и что делает слот Repair?
перерисовывает график
0
Автор FAQ
2728 / 1424 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
25.03.2012, 12:20 8
тогда при чем тут таймер? Вам надо перерисовывать график не по таймеру а по тому когда данные прочитаны, а таймер тут не к месту...
удалите из своего кода, это:
C++
1
2
QTimer *timer = new QTimer(this);
timer->start(1000);
и это:
C++
1
connect(timer, SIGNAL(timeout()), this, SLOT(Repaint()));
на форму добавьте QLineEdit вместо labeltest, и где нить в конструкторе формы добавьте это:

C++
1
connect(ui->lineEdit,SIGNAL(textChanged(QString)),SLOT(Repaint(QString)));
тогда слот Repaint будет принимать как аргумент строку считанную из файла...
0
1x
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 9
25.03.2012, 15:03  [ТС] 9
Цитата Сообщение от Чистый Посмотреть сообщение
тогда при чем тут таймер? Вам надо перерисовывать график не по таймеру а по тому когда данные прочитаны, а таймер тут не к месту...
удалите из своего кода, это:
C++
1
2
QTimer *timer = new QTimer(this);
timer->start(1000);
и это:
C++
1
connect(timer, SIGNAL(timeout()), this, SLOT(Repaint()));
на форму добавьте QLineEdit вместо labeltest, и где нить в конструкторе формы добавьте это:

C++
1
connect(ui->lineEdit,SIGNAL(textChanged(QString)),SLOT(Repaint(QString)));
тогда слот Repaint будет принимать как аргумент строку считанную из файла...
Просто мне нужна задержка маленькая чтоб я видел что происходит для этого и таймер.QLineEdit мне не нужен это просто тестовое окно посмотреть читает он или нет
0
Автор FAQ
2728 / 1424 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
25.03.2012, 15:29 10
тогда сложно что то советовать когда видишь не весь код... если нужна задержка тогда и ставь паузу в цикле считывания .... А проще покажи больше кода связанного с этим тогда и советовать что-то можно
0
1x
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 9
25.03.2012, 15:57  [ТС] 11
Цитата Сообщение от Чистый Посмотреть сообщение
тогда сложно что то советовать когда видишь не весь код... если нужна задержка тогда и ставь паузу в цикле считывания .... А проще покажи больше кода связанного с этим тогда и советовать что-то можно
C++
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <QtGui>
#include <QDialog>
#include "window.h"
#include "paint.h"
#include <QPointF>
#include <iostream>
#include <QTextStream>
 
 
window::window (QWidget *parent)
    :QDialog(parent)
{
    int frameStyle = QFrame::Sunken | QFrame::Panel;
 
 
    paint = new Paint(this);
 
 
    paint->setMinimumSize(700,250);
    paint->setMaximumSize(700,250);
 
 
 
    exit = new QPushButton(tr("EXIT"));
    open = new QPushButton(tr("Open File"));
    play = new QPushButton(tr("Play ECG"));
    openlabel = new QLabel;
    openlabel->setFrameStyle(frameStyle);
    labeltest = new QLineEdit;
 
//    open->setMaximumSize(100,30);
//    open->setMinimumSize(100,30);
//    openlabel->setMinimumSize(400,30);
//    openlabel->setMaximumSize(400,30);
 
    QHBoxLayout *hbox1 = new QHBoxLayout;
    QVBoxLayout *vbox1 = new QVBoxLayout;
    QGridLayout *layout =  new QGridLayout;
 
 
    hbox1->addWidget(open,0);
    hbox1->addWidget(openlabel,1);
    vbox1->addWidget(play,0);
    vbox1->addWidget(labeltest,1);
    layout->addLayout(hbox1,0,0);
    layout->addWidget(paint,1,0);
    layout->addLayout(vbox1,1,1);
    layout->addWidget(exit,2,0);
 
    setLayout(layout);
 
 
 
 
 
    connect(exit,SIGNAL(clicked()),this,SLOT(close()));
    connect(open,SIGNAL(clicked()),this,SLOT(OpenFile()));
    connect(play,SIGNAL(clicked()),this,SLOT(ReadFile()));
 
 
 
}
 
 
 
 
 
void window::Repaint()
{
    float a1;
    a1 = a.toDouble();
 
 
    for(int i = 0 ; i<699 ;i++)
    {
        paint->A[i+1]=paint->A[i];
    }
    paint->A[0].setY(a1);
    paint->repaint();
 
}
 
 
void window::OpenFile()
{
    QFileDialog::Options options;
    QString selectedFilter;
    fileName = QFileDialog::getOpenFileName(this,
                                tr("Open file"),
                                openlabel->text(),
                                tr("Text Files (*.txt)"),
                                &selectedFilter,
                                options);
    if (!fileName.isEmpty())
    {
        openlabel->setText(fileName);
 
    }
 
}
 
 
void window::ReadFile()
{
    QFile File (fileName);
    if(!File.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QMessageBox::information(this,tr("File not open\n"),File.errorString());
    }
    QTextStream in(&File);
 
   QTimer *timer = new QTimer(this);
 
 
   while(!in.atEnd())
    {
        timer->start(1000);
        in>>a;
        a = in.readLine();
        timer->start(1000);
 
        labeltest->setText(a);
 
 
 
 
    }
   connect(timer, SIGNAL(timeout()), this, SLOT(Repaint()));
    File.close();
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2012, 15:57

Помощь в написании контрольных, курсовых и дипломных работ здесь.

построчно записать данные из фаила txt в listBox
На сервере есть фаил, с содержанием: считаваю его в буффер: int URLgetpage(char *link,...

Чтение из файла 'New.txt', запись четных строк в '1.txt', а нечетных в '2.txt'
В общем все работает, но есть &quot;НО&quot;, иначе бы не открывал тему. Содержимое исходного файла: 1 1 1...

Чтение чисел из фаила и выполнение операций над ними
Товарищи выручайте пожалуйста! Необходимо на Си, написать программу для считывания из файла 3...

Чтение TXT (DXF) и вывод в TXT
Здравствуйте! По роду деятельности - инженер, пытаюсь написать программу по конвертации DXF в...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.