IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

VC++ .NET Discussion :

Calcul String (valeur Hexa) -> double puis double -> char *


Sujet :

VC++ .NET

  1. #1
    Membre tr�s actif
    Profil pro
    Conseil - Consultant en syst�mes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Conseil - Consultant en syst�mes d'information
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Par d�faut Calcul String (valeur Hexa) -> double puis double -> char *
    Bonjour,

    Bon tt d'abord j'explique la situation, je dois r�aliser une IHM permettant la gestion simplifier d'un compteur de goutte d'une t�te d'impression.

    J'ai donc une IHM ou l'utilisateur rentre 3 String qui correspondent � la valeur seuil d'encre "bas", "tres bas" et "vide". Les Strings que l'utilisateurs entrent sont des valeurs en Hexad�cimal, hors il faut que je puisse calculer � quel pourcentage correspond la valeur "tres bas" par rapport a la valeur "vide".

    Exemple :

    valeur "vide" : 3D0900
    valeur "tres bas" : 30D400
    "tres bas" correspond � 80 % de "vide"


    J'ai donc une suite de conversion a faire avec des calcules par la m�me occasion...ensuite affichage (mais ca devrait pas �tre un probl�me). Et je sais absolument pas comment faire.

  2. #2
    Membre tr�s actif
    Profil pro
    Conseil - Consultant en syst�mes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Conseil - Consultant en syst�mes d'information
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Par d�faut
    Ce qui serait g�nial ca serait de convertir ma String en double (donc en entier) puis de faire mon calcul... Mais je sais pas comment non plus, j'ai un peu de mal avec ce genre de chose.

    Ca donnerait un truc de ce genre :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
     
    String Vide = gcnew String("3D0900");
    double double_Vide;
     
    double_Vide = Convert::ToDouble(Vide);
    o� double_Vide contiendrait 4000000.

    Bien evidemment j'ai d�j� essay� le code cit� et j'obtiens 0.00000 dans double_vide.

  3. #3
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    j'aime bien ce passage
    Citation Envoy� par ben_ghost
    convertir ma String en double (donc en entier)
    regarde cet exemple
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
        String ^bin = "1111";
        int decimal = Convert::ToInt32(bin,2);
        String ^hexa = Convert::ToString(decimal, 16);
        Console::WriteLine("binaire = {0}\ndécimal = {1}\nhexadécimail = {2}", bin, decimal, hexa);
    tu peux t'inspirer du principe

  4. #4
    Membre tr�s actif
    Profil pro
    Conseil - Consultant en syst�mes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Conseil - Consultant en syst�mes d'information
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Par d�faut
    A oui... C'est plus simple que ce que j'ai fait mais je crois que c'est plus du C du mal encore a me faire au C++ je vous mets quand mon code :

    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
    double OwnFonction::RecupCaract(char * caractere)
    {
    	double total = 0;
    	double C1 = 0;
    	double C2 = 0;
    	switch (caractere[0])
    	{
    		case '0' :	C1 = 0;		break;
    		case '1' :	C1 = 1;		break;
    		case '2' :	C1 = 2;		break;
    		case '3' :	C1 = 3;		break;
    		case '4' :	C1 = 4;		break;
    		case '5' :	C1 = 5;		break;
    		case '6' :	C1 = 6;		break;
    		case '7' :	C1 = 7;		break;
    		case '8' :	C1 = 8;		break;
    		case '9' :	C1 = 9;		break;
    		case 'A' :	C1 = 10;	break;
    		case 'a' :	C1 = 10;	break;
    		case 'B' :	C1 = 11;	break;
    		case 'b' :	C1 = 11;	break;
    		case 'C' :	C1 = 12;	break;	
    		case 'c' :	C1 = 12;	break;
    		case 'D' :	C1 = 13;	break;
    		case 'd' :	C1 = 13;	break;
    		case 'E' :	C1 = 14;	break;
    		case 'e' :	C1 = 14;	break;
    		case 'f' :	C1 = 15;	break;
    		case 'F' :	C1 = 15;	break;
    	}
    	switch (caractere[1])
    	{
    		case '0' :	C2 = 0;		break;
    		case '1' :	C2 = 1;		break;
    		case '2' :	C2 = 2;		break;
    		case '3' :	C2 = 3;		break;
    		case '4' :	C2 = 4;		break;
    		case '5' :	C2 = 5;		break;
    		case '6' :	C2 = 6;		break;
    		case '7' :	C2 = 7;		break;
    		case '8' :	C2 = 8;		break;
    		case '9' :	C2 = 9;		break;
    		case 'A' :	C2 = 10;	break;
    		case 'a' :	C2 = 10;	break;
    		case 'B' :	C2 = 11;	break;
    		case 'b' :	C2 = 11;	break;
    		case 'C' :	C2 = 12;	break;
    		case 'c' :	C2 = 12;	break;
    		case 'D' :	C2 = 13;	break;
    		case 'd' :	C2 = 13;	break;
    		case 'E' :	C2 = 14;	break;
    		case 'e' :	C2 = 14;	break;
    		case 'f' :	C2 = 15;	break;
    		case 'F' :	C2 = 15;	break;
    	}
    	total = (C1 * 16) + C2;
    	return total;
    }
     
    double OwnFonction::ConvPtrCharToDouble(char *chaine , int Nb)
    {
    	int i;
    	double total = 0;
    	int octet = 0;
    	char * tanpom;
    	if ((Nb %2) == 0)
    	{
    		for (i= Nb-2;i>=0;i-=2)	
    		{
    			total += OwnFonction::RecupCaract(chaine+i) * Math::Pow( 256, octet);
    			octet++;
    		}
    	}
    	else
    	{
    		tanpom = (char *) malloc((strlen(chaine) + 2) * sizeof(char));
    		strcpy(tanpom+1,chaine);
    		tanpom[0] = '0';
    		for (i= Nb-1;i>=0;i-=2)	
    		{
    			total += OwnFonction::RecupCaract(tanpom+i) * Math::Pow( 256, octet);
    			octet++;
    		}
    	}
    	return total;
     
    }
    On fait au final appelle a la fonction OwnFonction::ConvPtrCharToDouble() et �a marche mais je pense que je vais la mettre de cot�... lol un peu lourd comme code.

    Merci nico

  5. #5
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    euh ... ca fait peur

    surtout le beau malloc qui n'est pas d�sallou� ... j'espere que tu feras pas trop de conversion

  6. #6
    Membre tr�s actif
    Profil pro
    Conseil - Consultant en syst�mes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Conseil - Consultant en syst�mes d'information
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Par d�faut
    Bien vu pour le malloc... lol Bon j'apprend pardonnable donc ... Ta m�thode est nettement plus pratique, merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 23/02/2010, 17h28
  2. Recuperer valeur d'une cellule sur double clic sur la ligne
    Par boboss123 dans le forum Composants
    R�ponses: 2
    Dernier message: 18/01/2010, 08h54
  3. R�ponses: 4
    Dernier message: 15/06/2009, 06h02
  4. Convert String represent Hexa en valeur D�cimal
    Par gdev7 dans le forum Langage
    R�ponses: 4
    Dernier message: 25/02/2008, 11h55
  5. Valeur en octet du type double
    Par Kemanke dans le forum Visual C++
    R�ponses: 3
    Dernier message: 18/04/2007, 13h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo