[C] concaténer chaine caractère avec double
Résolu/Fermé
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
-
13 mai 2008 à 10:23
fl0 Messages postés 357 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 10 novembre 2021 - 13 mai 2008 à 14:14
fl0 Messages postés 357 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 10 novembre 2021 - 13 mai 2008 à 14:14
A voir également:
- [C] concaténer chaine caractère avec double
- Double ecran - Guide
- Whatsapp double sim - Guide
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
5 réponses
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
13 mai 2008 à 10:58
13 mai 2008 à 10:58
Salut,
ton pb ne viendrait-il pas du fait que tu n'affectes jamais Tableau[1]?
ton pb ne viendrait-il pas du fait que tu n'affectes jamais Tableau[1]?
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
13 mai 2008 à 11:01
13 mai 2008 à 11:01
ok mon probleme c'est que j'ai mis %d a la place de %e pour un double
dans la ligne sprintf
mais ca ne convien encore pas tout a fait
j'obtien ca
COUNTER_ACCESS =1.00000e+0000
quand ma variable est a 1 etc...
je voudrais avoir COUNTER_ACCESS =1
si quelqu'un a une idée
ce que je veut fonctionne mais c'est pas propre
dans la ligne sprintf
mais ca ne convien encore pas tout a fait
j'obtien ca
COUNTER_ACCESS =1.00000e+0000
quand ma variable est a 1 etc...
je voudrais avoir COUNTER_ACCESS =1
si quelqu'un a une idée
ce que je veut fonctionne mais c'est pas propre
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
13 mai 2008 à 11:03
13 mai 2008 à 11:03
je vais mettre le code parceque jai fait quelque modif
comme tu peut le voir je n'ai plus tableau[1] c'était nimp
#include "apdefap.h"
char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
char Tableau[10][256];
char buf[50];
double temp;
int i,j;
strcpy(Tableau[0],"COUNTER_ACCESS = ");
temp=GetTagDouble("visu_archive");
sprintf(buf, "%e", temp);
i=strlen(buf);
j=strlen(Tableau[0]);
SetTagDouble("text_user",temp);
return strncat(Tableau[0] ,buf,i+j);
}
comme tu peut le voir je n'ai plus tableau[1] c'était nimp
#include "apdefap.h"
char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
char Tableau[10][256];
char buf[50];
double temp;
int i,j;
strcpy(Tableau[0],"COUNTER_ACCESS = ");
temp=GetTagDouble("visu_archive");
sprintf(buf, "%e", temp);
i=strlen(buf);
j=strlen(Tableau[0]);
SetTagDouble("text_user",temp);
return strncat(Tableau[0] ,buf,i+j);
}
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
13 mai 2008 à 11:20
13 mai 2008 à 11:20
Tu es bien sur que temp est bien different de 0 ? Tu as un moyen de verifier?
Pourquoi
return strncat(Tableau[0] ,buf,i+j);
et pas
return strcat(Tableau[0] ,buf);
??
Pourquoi
return strncat(Tableau[0] ,buf,i+j);
et pas
return strcat(Tableau[0] ,buf);
??
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
>
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
13 mai 2008 à 13:29
13 mai 2008 à 13:29
oui je suis sur que temp est different de 0 je t'explique le fonctionement du logiciel de supervision
en fait c'est wincc et je peut filtrer certaine donné je ne renterai pas dan le detail c'est pas utile
pour filtrer les données il faut marquer ce qu'on veut filtrer et par rapport a quoi
Ok jusque la
il y a deux facon de le faire statique donc ca change jamais
ou dynamique dans quel cas il fo un moyen de lui retourné une chaine de caractère avec les info ki vont bien
(d'ou mon return a la fin)
et je peu voir que c'est different de 0 car quand ma variable est egale a 1 je vois les enregistrement pour 1 quand ca vaut 2 je vois les enregistrement pour 2 etc...
dit moi si tu comprend rien
pour ta derniere question j'ai mis return comme ca parceque c'est comme ca que c t mis dans l'exemple mais maintenant je vais essayais comme ta mis et je te dit quoi
en fait c'est wincc et je peut filtrer certaine donné je ne renterai pas dan le detail c'est pas utile
pour filtrer les données il faut marquer ce qu'on veut filtrer et par rapport a quoi
Ok jusque la
il y a deux facon de le faire statique donc ca change jamais
ou dynamique dans quel cas il fo un moyen de lui retourné une chaine de caractère avec les info ki vont bien
(d'ou mon return a la fin)
et je peu voir que c'est different de 0 car quand ma variable est egale a 1 je vois les enregistrement pour 1 quand ca vaut 2 je vois les enregistrement pour 2 etc...
dit moi si tu comprend rien
pour ta derniere question j'ai mis return comme ca parceque c'est comme ca que c t mis dans l'exemple mais maintenant je vais essayais comme ta mis et je te dit quoi
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
13 mai 2008 à 13:30
13 mai 2008 à 13:30
OK j'ai essyer comme ta di
ca marche pas
en fait les script wincc sont programmable en c
mais avec certaine fonction adapter a winCC
a+
si ta une idee pour comment passé de
COUNTER_ACCESS =1.00000e+0000 àCOUNTER_ACCESS =1
ca marche pas
en fait les script wincc sont programmable en c
mais avec certaine fonction adapter a winCC
a+
si ta une idee pour comment passé de
COUNTER_ACCESS =1.00000e+0000 àCOUNTER_ACCESS =1
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
13 mai 2008 à 13:48
13 mai 2008 à 13:48
a part un sprintf(buf,"%d",temp)
non
non
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
>
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
13 mai 2008 à 13:54
13 mai 2008 à 13:54
le truc c'est que %d ca doit pas etre pour les double mais pour les int pour les double c'est %e mais je vais peut etre regarder pour mettre tous en int tu connais les limite de int???
de toute facon ca marche tres bien comme ca on ne voit meme pas le temp de reaction
de toute facon ca marche tres bien comme ca on ne voit meme pas le temp de reaction
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
13 mai 2008 à 14:14
13 mai 2008 à 14:14
OK c'est bon
voila pour info j'en ai eu besoin et eu du mal a trouvé
char : de 0 à 255 (ou de -127 à 127)
signed char : de -127 à 127
unsigned char : de 0 à 255
(signed) short : de -32767 à 32767
unsigned short : de 0 à 65535
(signed) int : de -32767 à 32767
unsigned int : de 0 à 65535
(signed) long : de -2147483647 à 2147483647
unsigned long : de 0 à 4294967295
(signed) long long : de -9223372036854775807 à 9223372036854775807
unsigned long long : de 0 à 18446744073709551615
moi j'ai choisi unsigned long long comme la machine va chez un client autant prevoir large
voila mon code
#include "apdefap.h"
char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
char Tableau[10][256];
char buf[50];
unsigned long long temp;
int i,j;
strcpy(Tableau[0],"COUNTER_ACCESS = ");
temp=GetTagDWord("visu_archive");
sprintf(buf, "%ld", temp);
i=strlen(buf);
j=strlen(Tableau[0]);
return strncat(Tableau[0] ,buf,i+j);
j'ai tous simplement remplacer temp par un entier a la place d'un chiffre exprimer en puissance de 10 et voila merci tous mes probleme sont resolu si vous avez des questions
voila pour info j'en ai eu besoin et eu du mal a trouvé
char : de 0 à 255 (ou de -127 à 127)
signed char : de -127 à 127
unsigned char : de 0 à 255
(signed) short : de -32767 à 32767
unsigned short : de 0 à 65535
(signed) int : de -32767 à 32767
unsigned int : de 0 à 65535
(signed) long : de -2147483647 à 2147483647
unsigned long : de 0 à 4294967295
(signed) long long : de -9223372036854775807 à 9223372036854775807
unsigned long long : de 0 à 18446744073709551615
moi j'ai choisi unsigned long long comme la machine va chez un client autant prevoir large
voila mon code
#include "apdefap.h"
char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
char Tableau[10][256];
char buf[50];
unsigned long long temp;
int i,j;
strcpy(Tableau[0],"COUNTER_ACCESS = ");
temp=GetTagDWord("visu_archive");
sprintf(buf, "%ld", temp);
i=strlen(buf);
j=strlen(Tableau[0]);
return strncat(Tableau[0] ,buf,i+j);
j'ai tous simplement remplacer temp par un entier a la place d'un chiffre exprimer en puissance de 10 et voila merci tous mes probleme sont resolu si vous avez des questions