Accueil > Forum > > > > tracer une courbe à partir d'un txt
tracer une courbe à partir d'un txt
jeudi 1 mars 2007 à 19:19:47 |
tracer une courbe à partir d'un txt

daminou973
|
Bonjour à tous! Je réalise actuellement un projet de deuxiéme année de bts iris. Mon projet consiste à définir les profils de consommation d'une centrale electrique via une interface que j'ai faite et d'envoyer par l'intermédiaire d'un client/serveur les données du profil de consommation au technicien de suppervision... La, j'ai un petit soucis pour tracer la courbe du profil en fonction du txt que je récuppére Voici un exemple de la forme du txt : 1,0,0,2,30;4,2,30,8,0;8,8,0,0,0 ce qui signifie: 1 charge de 0h00 à 2h30 4 charges de 2h30 à 8h00 8 charges de 8h00 à 0h00 Voila le travail que j'ai effectué: http://daminou973i.free.fr/MonTest.rar je programme sous visual c++ 6 Mon probléme c que quand ca commence à arriver à 10h il y a 2 caractére dans mon tableau, alors mon algo devient faux, surrement qu'on peut faire beaucoup plus simplement, si vous avez des idées... merci
|
|
jeudi 1 mars 2007 à 22:31:02 |
Re : tracer une courbe à partir d'un txt

daminou973
|
en fait pour etre plus précis, j'arrive à gerrer les heures de 0 à9 mais pas de 10 à 23 et les minutes j'arrive pas à les gérer vu que c'est 15,30,45 défois et que c'est un tableau de char. FILE *donne_charges=NULL; int i=0; int k=0;
char s[48]; donne_charges = fopen( "charges.txt", "a+" ); fscanf(donne_charges,"%s",s); int heure; int charge;
for(int j=0;j<=7;j++) { //utiliser atoi heure=s[2+i]; heure=heure-48; XValues[j] = heure; charge=s[k]; charge=charge-48; YValues[j] = charge; i=i+12; j++; heure=s[2+i]; heure=heure-48; XValues[j] = heure; YValues[j] = charge; k=k+12; }
avec ca j'arrive à gérer les heures de 0 à9 mais sans prendre en compte les minutes en fonction des charges c'est un peu farfellu mais les fonctions en c++ je lé connais pas trop...
|
|
vendredi 2 mars 2007 à 01:04:38 |
Re : tracer une courbe à partir d'un txt

BruNews
|
for(int j=0;j<=7;j++) - c'est quoi ce 7 et sur quoi tu boucles ??? ------------------------
Voila une piste possible, j'irais dans ce sens si je devais le faire. Gaffe aux possibles fautes de frappe, je tape direct ici et je ne teste donc rien.
typedef struct _BNEDF { DWORD chrg; DWORD hd; DWORD md; DWORD hf; DWORD mf; } BNEDF, *LPBNEDF;
#define MEMDISPO (MEM_COMMIT | MEM_RESERVE | MEM_TOP_DOWN)
BNEDF edf; BYTE *pbuf, *c; HANDLE hfl; DWORD v, d;
hfl = CreateFile("charges.txt", GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0); if(hfl == INVALID_HANDLE_VALUE) return; v = GetFileSize(hfl, 0); if(GetLastError()) goto closeFL; if(!v) goto closeFL; // VIDE ? ON SORT AUSSI pbuf = (BYTE*) VirtualAlloc(0, v + 1, MEMDISPO, PAGE_READWRITE); if(!pbuf) goto closeFL; ReadFile(hfl, pbuf, v, &d, 0); if(d != v) goto relMEM; // ERREUR LECTURE, ON SORT // pbuf CONTIENT LE FICHIER + 1 ZERO FINAL POUR DIRE STOP SANS COMPTER c = pbuf;
fromBUF: edf.chrg = atoi(c); // CHARGE REMPLI while((*c >= 48) && (*c <= 57)) c++; if(*c != ',') goto relMEM; // LIGNE INVALIDE, BASTA c++; edf.hd = atoi(c); // HEURE DEBUT REMPLI if(edf.hd > 23) goto relMEM; // LIGNE INVALIDE, BASTA while((*c >= 48) && (*c <= 57)) c++; if(*c != ',') goto relMEM; // LIGNE INVALIDE c++; edf.md = atoi(c); // MINUTE DEBUT REMPLI if(edf.md > 59) goto relMEM; // LIGNE INVALIDE, BASTA while((*c >= 48) && (*c <= 57)) c++; if(*c != ',') goto relMEM; // LIGNE INVALIDE c++;
edf.hf = atoi(c); // HEURE FIN REMPLI if(edf.hf > 23) goto relMEM; // LIGNE INVALIDE, BASTA while((*c >= 48) && (*c <= 57)) c++; if(*c != ',') goto relMEM; // LIGNE INVALIDE c++; edf.mf = atoi(c); // MINUTE FIN REMPLI if(edf.mf > 59) goto relMEM; // LIGNE INVALIDE, BASTA while((*c >= 48) && (*c <= 57)) c++; // JE FAIS LE CAS QUE CHAQUE ENREG FINIT PAR ';' // MEME EN FIN DE LIGNE, SINON TU MODIFIERAS if(*c != ';') goto relMEM; // ENREG INVALIDE
// TON SYSTEME D'AFFICHAGE (OU TRANSMETTRE) DONNEES ICI
// SAUT LIGNE POSSIBLE, RECHERCHE PROCHAIN ENREG do { c++; if(!*c) goto relMEM; // FIN DE BUFFER } while((*c == '\r') || (*c == '\n')); if((*c >= 48) && (*c <= 57)) goto fromBUF; // AUTRE ENREG POSSIBLE, ON BOUCLE
relMEM: VirtualFree(pbuf, 0, MEM_RELEASE); closeFL: CloseHandle(hfl);
ciao... BruNews, MVP VC++
|
|
vendredi 2 mars 2007 à 09:15:51 |
Re : tracer une courbe à partir d'un txt

yoyo269
|
Bonjour ! Daminou, au cas où tu voudrais voir un exemple de tracé de courbes à partir d'un txt, vas voir cette source : TRACE DE COURBESCa pourra toujours t'aider pour quelque chose au cas où.  YOYO, @+. "L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !" ____________________________________________ [Site officiel de YoyoCut, découpe fichiers open source]
|
|
vendredi 2 mars 2007 à 17:40:42 |
Re : tracer une courbe à partir d'un txt

daminou973
|
Merci beaucoup à vous deux ! @ BruNews : en fait j c l'indice des 2 tableaux pour remplir ma courbe, j'ai mis 7 car il y avait 8 points pour tracer la courbe à partir du txt je l'avais pas encore codé pour déterminer le nbre de pts.
En tous cas j'ai regardé en debug ce que ta fé et ca mé bien les valeurs en entier grace à ta structure, un grand merci ; seul probléme les goto le prof il n'aime pas trop ^^, on est censé faire une qualité logicielle orienté "objet", mais déja le fait de pouvoir récuppérer les valeurs comme tu faits m'aura beaucoup aidé.
@yoyo269: merci à toi, ca à l'air interessant aussi mais apparemment c sous dev c++ , je programme sous visual, mais je regarderai quand même.
|
|
vendredi 2 mars 2007 à 18:28:26 |
Re : tracer une courbe à partir d'un txt

yoyo269
|
Désolé daminou, j'avais pas fait attention que tu programmais en MFC. C'est un choix. Sinon pour l'adapter à Visual C++ ça doit pas être bien dur.  BruNews, pour les goto, les profs n'aiment pas du tout ça en général (moi aussi ils étaient chiants avec ça  ), mais il me semble que c'est plus rapide. Du moins c'est ce que je pense donc corrige moi si c'est bidon ce que je dis.  YOYO, @+. "L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !" ____________________________________________ [Site officiel de YoyoCut, découpe fichiers open source]
|
|
vendredi 2 mars 2007 à 20:38:32 |
Re : tracer une courbe à partir d'un txt

BruNews
|
Ce n'est pas du tout une question de rapidité mais de logique d'algo. Je préfère qlqs goto à une floppée de IF et d'indentations. Imagine dans mon code, on aura un IF démarrant à chaque champ, certains pensent que c'est plus lisible, moi pas du tout. goto a aussi l'avantage de mener direct où on veut sans répéter certaines instructions. Dans tous les cas, qu'on l'écrive ou non le goto, le compilo les mettra (JMP en ASM), il n'y a aucun autre moyen de faire du conditionnel. Exemple minimal: if(pbuf) VirtualFree(pbuf, 0, MEM_RELEASE); ok on ne voit pas le goto mais le compilo le mettra et donc produire: cmp dword ptr pbuf, 0 je Lsuite ;// IL EST BIEN LA LE goto, AUCUN MOYEN AUTREMENT push MEM_RELEASE push 0 push pbuf call VirtualFree Lsuite:
ciao... BruNews, MVP VC++
|
|
vendredi 2 mars 2007 à 23:18:50 |
Re : tracer une courbe à partir d'un txt

daminou973
|
c'est bon , mon graphique marche !
cependant il y a certaines lignes que je n'ai pas compris, pourais tu m'expliquer ces lignes :
#define MEMDISPO (MEM_COMMIT | MEM_RESERVE | MEM_TOP_DOWN) hfl = CreateFile("charges.txt", GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0); pbuf = (BYTE*) VirtualAlloc(0, v + 1, MEMDISPO, PAGE_READWRITE);
merci
|
|
samedi 3 mars 2007 à 00:10:10 |
Re : tracer une courbe à partir d'un txt

BruNews
|
Tout ceci est appel direct API sans passer par le CRT (qui finit à tout coup sur API). CreateFile() tente l'ouverture du fichier (obtenir handle). A noter que cette fonction fait plein d'autres choses dans différents contextes. Equivalent CRT: fopen() VirtualAlloc() fournit un bloc mémoire par allocation dynamique. Equivalent CRT: malloc() Détails complets avec exemples dans Richter: http://brunews.com/brunews/download/JR4.ziphttp://brunews.com/brunews/download/JR4Sources.zipciao... BruNews, MVP VC++
|
|
dimanche 4 mars 2007 à 00:17:22 |
Re : tracer une courbe à partir d'un txt
|
Cette discussion est classée dans : partir, projet, txt, tracer, courbe
Répondre à ce message
Sujets en rapport avec ce message
Tracer une courbe a partir de mesures enregistrées dans un fichier ( urgent) [ par aurelien070 ]
Dans mon programme il faut que je visualise les mesures provenant de l'oscilloscope numérique sous forme de courbe.Mes mesures sont stockées dans un f
tracer courbe en excel à partir de MFC [ par mabrouka ]
bonjour,comment tracer une courbe en excel à partir de visual c++ MFCmerci
Tracer une courbe à partir de données Excel en C/C++ [ par sokpassy85 ]
Bonjour à toutes et à tous, Je dois programmer en C/C++ pour tracer une courbe à partir de données Excel (Ces données sont des mesures d'accélération
au sujet de la classe graphxy [ par krussel ]
Bonjour,Je cherche un moyen de tracer plusieurs courbes à partir d'un programme C++ (sisual studio 2005). J'ai trouvé sur le site une classe graphxy e
Tracer une courbe dans VB 2008 [ par im24 ]
Bonjour tout le monde je dois dessiner une courbe avec VB a partir d'un tableau sur Excel ( tableau de bord social ).... s'il vous plait pourriez vo
Tracer courbe sous Visual C++ 2008 [ par tomtom3141 ]
Bonjour, Après plusieurs heures de recherches sur le web, je n'ai pas trouvé de solutions simples pour tracer un graphique (points contenus dans un t
Tracer courbe 2D avec dev C++ [ par ritchyv ]
Bonjour,Comme je l'ai indiqué dans le sujet, je souhaite tracer une courbe à partir de points avec DEV C++. Comment dois je procéder ??Existe t'il une
MFC : Tracer une courbe [ par zedzedzed ]
Bonjour.Voila je suis un débutant en C++ et j'effectue un stage de developpement informatique.J'utilise Visual C++ version 6. Et mon maitre de stage m
Ajout d'un graphe [ par ptitanic ]
Bonjour tout le monde, Voilà,j'ai un tableau et j'aimerais tracer la courbe associée. J'aimerais donc savoir si qqn pourrait me conseiller sur la mei
Conseil pour tracer une courbe [ par DMK04 ]
Bonjour,Je voudrais savoir quel est selon vous, le meilleur outil pour tracer une courbe.Merci d'avance,Marc PYNAERT
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|