TRACÉ DE GRAPHES SOUS VISUAL C++ V6.0 AVEC EXPORTATION VERS MICROSOFT EXCEL

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 - 1 mai 2004 à 18:21
cs_cha7ri Messages postés 22 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 2 décembre 2009 - 9 janv. 2008 à 23:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/22448-trace-de-graphes-sous-visual-c-v6-0-avec-exportation-vers-microsoft-excel

cs_cha7ri Messages postés 22 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 2 décembre 2009
9 janv. 2008 à 23:49
je veu fair transformer des chifres a un histogramme ou un graphe
vous pouvez m'aider SVP.
RachidMattich Messages postés 1 Date d'inscription lundi 14 août 2006 Statut Membre Dernière intervention 16 août 2006
16 août 2006 à 14:04
Merci pour tous ceux qui intervient de loin ou de pres pour aider
les developpeurs amateurs Merci Merci
youwww Messages postés 3 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 25 mai 2006
25 mai 2006 à 04:24
Je dois vous dire grand merci. Super code, une fois tout compile sans erreur. Maintnant je vais analyse votre code et programme dessus pour mon utilisation. Encore merci.
elgorab Messages postés 2 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 16 février 2006
16 févr. 2006 à 01:52
euh en fait malgré les corections ca donne n importe koi au niveau des graphes...
elgorab Messages postés 2 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 16 février 2006
16 févr. 2006 à 01:49
Sympa ce prog!!

Faut juste faire quelques retouches de codes due a des erreurs de compilation et de debugage!

erreur de compilation:

=> les memes que celles citées par thxoptimizer

correction

=> pour les fonctions atan et pow preciser que l on veut utiliser la fonction atan(float) et pow(float,float). ce qui veut dire mettre par exemple atan((float)1) au lieu de atan(1) par exemple...

> pour error C2440: '' : impossible de convertir de 'float (*)[5]' en 'float *[5]'
mettre
for (int i=0; i<5;i++)
fT[i]=m_pDoc->m_fT[i];
a la place de
fT=m_pDoc->m_fT;

Ensuite y a un core dump a l execution dans Dessin.cpp
au niveau de la ligne (ligne 210 je crois):

if (fT[i][iD_Axes[0][j]]>m_fZoomXmi && fT[i][iD_Axes[0][j]]<m_fZoomXma && fT[i][iD_Axes[1][j]]>m_fZoomYmi && fT[i][iD_Axes[1][j]]<m_fZoomYma)


mettre avant la premiere boucle for (qui se trouve ligne 202 je crois):
if(Nb>=6)
Nb=5;
thxoptimizer Messages postés 24 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 18 octobre 2014
6 oct. 2005 à 13:38
Bon, j'ai mieux compris le conseil de Jo006 (s'il vous plaît les gars, pensez que des gens moins forts peuvent avoir besoin de conseils clairs).

Donc tout au début de Dessin.h et de BkDoc.h, rajouter la ligne :
typedef float(*FONCTION)[5];

Ceci définira un nouveau type FONCTION qui cachera ce qu'il y a derrière (autrement dit un tableau à 2 dimensions).

Du coup, les déclarations float(*fT)[5] et float (*m_fT)[5]; sont à remplacer par FONCTION fT et FONCTION m_fT.

Voilà!
Si on m'avait expliqué ça il y a 6 mois, ça m'aurait bien aidé!!!!
thxoptimizer Messages postés 24 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 18 octobre 2014
6 oct. 2005 à 13:25
Je crois que vous pouvez lacher l'affaire; le créateur de ce code s'est barré depuis un bout de temps apparemment.

J'y reviens dessus 6 mois plus tard pour voir ce que je peux en faire.
De toutes les erreurs répertoriées, il ne m'en reste qu'une (les autres nécéssitant juste des casts explicites) :

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Dessin.cpp(48) : error C2440: '=' : impossible de convertir de 'float (*)[5]' en 'float *[5]'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

C'est pour la ligne fT=m_pDoc->m_fT;

J'comprend rien!
DocPhiphi Messages postés 42 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 4 novembre 2008
5 oct. 2005 à 16:18
Bonjour à tous,
Si j'ai lu ce code (superbe au demeurant) c'est que je cherchais comment automatiser la sauvegarde d'un fichier Excel sous Visual C++ 6 (fonction book.SaveAs).

ET J'Y ARRIVE PAS....Snif !!

Merci d'avance
ien_ien Messages postés 1 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 18 août 2005
18 août 2005 à 14:40
Salut à tous,
j'ai les meme erreurs que vous sous VC++, j'ai appliqué les modif que vous donniez malheureusement je ne sais pas où je dois placer le modif de jo0006 si quelqu'un pouvait m'aider :)
jo0006 Messages postés 1 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 14:57
Bonjour,

Je viens de rencontrer les mêmes erreurs sous Visual Studio.
J'ai casté les paramètres d'appel des fonctions 'atan' et 'pow' en float.
Et pour l'erreur : error C2440: '=' : impossible de convertir de 'float (*)[5]' en 'float *[5]'
J'ai déclaré un typedef :
"typedef float(*FONCTION)[5];"

Tchao,
jo
thxoptimizer Messages postés 24 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 18 octobre 2014
19 avril 2005 à 16:01
error C2440: '=' : impossible de convertir de 'float (*)[5]' en 'float *[5]'

Aucune conversion en types tableau, même s'il y a des conversions en références ou en pointeurs de tableau
error C2668: 'atan' : appel ambigu à une fonction surchargée
peut être 'long double atan(long double)'
ou 'float atan(float)'
ou 'double atan(double)'
lors de la tentative de mise en correspondance de la liste des arguments '(int)'

error C2668: 'atan' : appel ambigu à une fonction surchargée
peut être 'long double atan(long double)'
ou 'float atan(float)'
ou 'double atan(double)'
lors de la tentative de mise en correspondance de la liste des arguments '(int)'

BkView.cpp
error C2666: 'pow' : les surcharges 7 ont des conversions similaires
peut être 'long double pow(long double,int)'
ou 'long double pow(long double,long double)'
ou 'float pow(float,int)'
ou 'float pow(float,float)'
ou 'double pow(int,int)'
ou 'double pow(double,int)'
ou 'double pow(double,double)'
lors de la tentative de mise en correspondance de la liste des arguments '(float, double)'



ETC. Dommage, ça avait l'air intéressant mais je suis pas assez fort pour tout recorriger.
lilington Messages postés 158 Date d'inscription samedi 31 janvier 2004 Statut Membre Dernière intervention 12 mars 2009
28 mars 2005 à 19:35
bonjour en fait mon probleme c'est que j'ai juste besoins de faire un petit prog qui ouvre un fichier excel existant recupère 1 valeur dans une cellule definie puis ouvre un autre fichier excel et réecrit la valeur prise dans ce nouveau fichier. J'ai aucune idée de par ou commencer.J'ai essaiye de lire dans ce forom mes tout ce que je trouve c'est des explication qui suppose que l'on sais déjà ouvrir un fichier excel ou des code source non commenté merci de juste me montrer un petit code qui ouvre un fichier excel je me debrouillerai pour le reste.
robbynaze Messages postés 11 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 23 novembre 2004
9 nov. 2004 à 10:22
très belle source
j'y ai ajouté une petite évolution dans le fichier Excel pour permettre l'ouverture simple d'un fichier existant (sans les 12 paramètres optionnels en fait)

//excel8.h
LPDISPATCH Open(LPCTSTR Filename);
//excel8.cpp
LPDISPATCH Workbooks::Open(LPCTSTR Filename)
{ LPDISPATCH result;
static BYTE parms[] = VTS_BSTR ;
InvokeHelper(0x2aa, DISPATCH_METHOD, T_DISPATCH, (void*)&result, parms, Filename);
return result;
}


//ouverture fichier existant :
books=m_pAppli->GetWorkbooks();
books.Open("path_fichier_a_ouvrir.xls");



Remarque :
je conseille vivement pendant l'envoi des données de cacher l'application Excel pour 2 raisons :
1- éviter une interaction avec l'utilisateur qui peut accidentellement fermer le classeur ou Excell
2- fort gain en vitesse de transfert des données car les fonctions de rafraichissement du classeur sont ainsi désactivée
avant envoi : m_pAppli->SetVisible(FALSE);
après envoi : m_pAppli->SetVisible(TRUE);
Pytoune Messages postés 1 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 24 juin 2004
24 juin 2004 à 14:32
Salut à vous,
cette source est super
Mais comment faites vous quand vous arrivez dans un projet tel celui ci et que vous voulez par exemple comprendre dans que lordre fonctionne le prg.
A quel moment il calcule les points à afficher par exemple
Moi je ne connais que F10 pour allre de ligne en ligne mais je ne comprends pour l'instant pas la complexité de celui-ci
Si vous pouviez m'expliquer de quelle façon procéder
Merci
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 mai 2004 à 21:13
eh bien pourquoi ne pas empêcher que cela arrive?
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
1 mai 2004 à 18:21
Bon juste un petit bug :
quand je resize la fenetre telle qu'elle soit tres petite (jusqu'a 0), et bien il y a une assertion qui echoue dans wingdi.cpp ligne 417