Bonjour, j'ai une partie de mon code qui parasite la lecture d'un fichier, qui me retourne "4" à chaque mot contenu dans le fichier.

Toutes les personnes à qui j'ai demander jusqu'à maintenant se sont cassés les dents dessus, et c'est la seconde journée de boulot que je perd sur ce problème.

Je remercie d'avance toutes les personnes qui m'aideront.

Psycha

CClientMaJ.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
#ifndef CCLIENTMAJ_H
#define CCLIENTMAJ_H
 
#include <QHttp>
#include <Qurl>
#include <QString>
#include <QHttpRequestHeader>
#include <QFile>
#include <QDebug>
 
class CClientMaJ : public QObject
{
 
    Q_OBJECT
 
    public:
	CClientMaJ(QUrl) ;
 
    signals :
	void LancerComparaison() ;
	void recommencerTelechargement() ;
	void continuerTelechargement() ;
	void commencerTelechargement() ;
 
    private slots :
	void finRecuperationVersion(int) ;
	void LaunchComparaison() ;
	void eraseDownload() ;
	void relaunchDownload() ;
	void launchDownload() ;
	void finTelechargement(int) ;
	void majProgression(int, int) ;
 
    private:
	QFile *f_OnisLauncher ;
	QFile *f_NumVersionOnline ;
	QFile *f_NumVersionLocale ;
	QFile *f_NumVersionTemp ;
	QFile *f_AvancementDown ;
 
	QString *s_VersionOnline ;
	QString *s_VersionLocale ;
	QString *s_VersionTemp ;
 
	QHttp *h_HttpOnis ;
	QHttp *h_HttpVersion ;
 
	QUrl *u_UrlOnis ;
	QUrl *u_UrlVersion ;
 
} ;
 
#endif // CCLIENTMAJ_H
CClientMaJ.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#include "CClientMaJ.h"
 
CClientMaJ::CClientMaJ(QUrl urlDownload) : QObject()
{
    qDebug() << "Constructeur" ;
    f_NumVersionOnline = new QFile("versionOnline.txt") ;
    f_NumVersionLocale = new QFile("versionLocale.txt") ;
    f_NumVersionTemp = new QFile("versionTemp.txt") ;
    f_OnisLauncher = new QFile("MaJOnis.exe") ;
    f_AvancementDown = new QFile("avancementTemp.txt") ;
 
    h_HttpOnis = new QHttp ;
    h_HttpVersion = new QHttp ;
 
    s_VersionOnline = new QString ;
    s_VersionLocale = new QString ;
    s_VersionTemp = new QString ;
 
    u_UrlOnis = new QUrl(urlDownload) ;
    u_UrlVersion = new QUrl("********") ; //url à risque
 
    QHttpRequestHeader headerVersion("GET", u_UrlVersion->path()) ;
    headerVersion.addValue("HOST", u_UrlVersion->host()) ;
    h_HttpVersion->setHost(u_UrlVersion->host()) ;
 
    f_NumVersionOnline->open(QIODevice::WriteOnly) ;
 
    h_HttpVersion->request(headerVersion, 0, f_NumVersionOnline) ;
 
    connect(h_HttpVersion, SIGNAL(requestFinished(int,bool)), this, SLOT(finRecuperationVersion(int))) ;
    connect(this, SIGNAL(LancerComparaison()), this, SLOT(LaunchComparaison())) ;
    connect(this, SIGNAL(recommencerTelechargement()), this, SLOT(eraseDownload())) ;
    connect(this, SIGNAL(continuerTelechargement()), this, SLOT(relaunchDownload())) ;
    connect(this, SIGNAL(commencerTelechargement()), this, SLOT(launchDownload())) ;
    connect(h_HttpOnis, SIGNAL(requestFinished(int, bool)), this, SLOT(finTelechargement(int))) ;
    connect(h_HttpOnis, SIGNAL(dataReadProgress(int, int)), this, SLOT(majProgression(int, int))) ;
    connect(h_HttpVersion, SIGNAL(dataReadProgress(int,int)), this, SLOT(majProgression(int,int))) ;
}
 
void CClientMaJ::finRecuperationVersion(int id)
{
    if(id == 2)
    {
	qDebug() << "Fin de la recuperation du numero de version online" ;
	h_HttpVersion->close() ;
 
	f_NumVersionOnline->close() ;
 
	emit LancerComparaison() ;
    }
 
}
 
void CClientMaJ::LaunchComparaison()
{
    qDebug() << "Lancement de la comparaison" ;
    f_NumVersionOnline->open(QIODevice::ReadOnly) ;
    f_NumVersionLocale->open(QIODevice::ReadOnly) ;
 
    s_VersionOnline->append(f_NumVersionOnline->readAll()) ;
    s_VersionLocale->append(f_NumVersionLocale->readAll()) ;
 
    f_NumVersionOnline->close() ;
    f_NumVersionLocale->close() ;
 
    qDebug() << *s_VersionOnline ;
    qDebug() << *s_VersionLocale ;
    if(*s_VersionLocale != *s_VersionOnline)
    {
	if(f_NumVersionTemp->exists())
	{
	    f_NumVersionTemp->open(QIODevice::ReadOnly) ;
	    s_VersionTemp->append(f_NumVersionTemp->readAll()) ;
	    f_NumVersionTemp->close() ;
	    qDebug() << *s_VersionTemp ;
	    if(*s_VersionTemp != *s_VersionOnline)
	    {
		emit recommencerTelechargement() ;
	    }
	    else
	    {
		emit continuerTelechargement() ;
	    }
	}
	else
	{
	    emit commencerTelechargement() ;
	}
    }
 
}
 
void CClientMaJ::eraseDownload()
{
    qDebug() << "Erase telechargement" ;
    f_NumVersionTemp->remove() ;
    f_OnisLauncher->remove() ;
    f_AvancementDown->remove() ;
 
    emit commencerTelechargement() ;
}
 
void CClientMaJ::relaunchDownload()
{
    qDebug() << "Relancement du teléchargement" ;
 
     //
    //f_AvancementDown->open(QIODevice::ReadOnly) ;
    //* Zone du problème
 
    QFile temp("avancementTemp.txt") ;
    temp.open(QIODevice::ReadOnly) ;
    QString line = temp.readLine() ;
    qDebug() << line ;
 
    //*/// Zone du problème
   // f_AvancementDown->close() ;
   //
 
    h_HttpOnis->setHost(u_UrlOnis->host()) ;
 
    QHttpRequestHeader headerOnis("GET", u_UrlOnis->path()) ;
    headerOnis.addValue("HOST", u_UrlOnis->host()) ;
    headerOnis.setValue("Connection", "Keep-Alive");
    headerOnis.addValue("Range","") ;
 
    f_OnisLauncher->open(QIODevice::Append) ;
 
    h_HttpOnis->request(headerOnis, 0, f_OnisLauncher) ;
}
 
void CClientMaJ::launchDownload()
{
    qDebug() << "Lancement du telechargement" ;
    h_HttpOnis->setHost(u_UrlOnis->host()) ;
 
    QHttpRequestHeader headerOnis("GET", u_UrlOnis->path()) ;
    headerOnis.addValue("HOST", u_UrlOnis->host()) ;
 
    f_NumVersionTemp->open(QIODevice::WriteOnly) ;
    f_NumVersionTemp->write(s_VersionOnline->toStdString().c_str()) ;
    f_NumVersionTemp->close() ;
 
    f_OnisLauncher->open(QIODevice::WriteOnly) ;
 
    h_HttpOnis->request(headerOnis, 0, f_OnisLauncher) ;
}
 
void CClientMaJ::finTelechargement(int id)
{
    if(id == 5)
    {
	qDebug() << "Fin du telechargement de Onis" ;
	h_HttpOnis->close() ;
	f_OnisLauncher->close() ;
	f_NumVersionOnline->remove() ;
	f_NumVersionTemp->remove() ;
	f_AvancementDown->remove() ;
	f_NumVersionLocale->open(QIODevice::WriteOnly) ;
	f_NumVersionLocale->write(s_VersionOnline->toStdString().c_str()) ;
 
    }
}
 
void CClientMaJ::majProgression(int done, int data)
{
    //qDebug() << done << "/" << data ;
    f_AvancementDown->open(QIODevice::WriteOnly) ;
    QString a ;
    a.setNum(done) ;
    QString b ;
    b.setNum(data) ;
    QString d ;
    d = a + "\r\n" + b ;
    f_AvancementDown->write(d.toStdString().c_str()) ;
    f_AvancementDown->close() ;
}