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

 Delphi Discussion :

conversion de string


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut conversion de string
    Bonjour
    dans un fichier je recupere une string avec des chiffres comme ci dessous
    1.000000E+20
    quelle fonction faut t'il faire pour convertir en integer ou en real

    Merci pour votre aide encore

  2. #2
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    est vous tapez str ..... sa vaut la peine
    ESSAYE STRTOINT....
    voila une autre piste http://c.developpez.com/faq/?page=strings
    et si vous faite dans le vhdl bon chance

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut
    Bonjour
    merci
    mais javais deja essayer
    je recupere ma string s:= '-1.000000E+20'
    ensuite
    je transforme
    x defini en integer
    x:=strtoint(s);
    mais la il me renvoi 1
    normal ou pas

    merci

  4. #4
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    -1.000000E+20 , est ce que c'est un chiffe scientifique ...? est ce que il est issue d'une opération mathématique ou autres ? ou tout simplement un chiffre pour désigné un processus

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut
    Bonjour
    un exemple ci dessous
    jai l erreur pas une valeur entiere correcte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
    s:string;
    x:integer;
    begin
    decimalseparator:='.';
        s:='-1.000000E+20' ;
        x:=strtoint(s);
        label1.Caption:=inttostr(x);
    end;
    merci de votre aide

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut
    bonjour
    le fichier est un fichier DXF
    vois ci dessous

    $INSBASE
    10
    0.0
    20
    0.0
    30
    0.0
    9
    $EXTMIN
    10
    1.000000E+20
    20
    1.000000E+20
    30
    1.000000E+20
    9
    $EXTMAX
    10
    -1.000000E+20
    20
    -1.000000E+20
    30
    -1.000000E+20
    9
    $LIMMIN
    +++

  7. #7
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    donc -1.000000E+20 est une constante prédéfinie.

  8. #8
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    j'ai l erreur pas une valeur entière correcte
    faut utiliser floattostr ou strtofloat pour des valeur avec des décimales.

    consult : ftp://ftp-developpez.com/deefaze/del...ion-format.pdf

  9. #9
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour,

    -1.000000E+20 c'est un grand nombre négatif : c'est -1 10 puissance 20 ou -1 avec 20 zéro derrière.

    Si StrToInt donne -1 c'est que la fonction est faite pour les entier - elle ne lit que le début de la chaine

    c'est donc une question de format - il faut choisir le format scientifique

    Je pense qu'il faut utiliser la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       StrToFloat(const S: string; const FormatSettings: TFormatSettings): Extended; overload;
    Regarde l'aide pour FormatSettings

    A+

    Charly

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut
    bonjour
    meme avec exemple de ce site j ai une erreur
    http://www.delphibasics.co.uk/RTL.asp?Name=StrToFloat
    comprend plus rien
    jai Delphi 7 personnel sa peut etre sa ?

    +++

  11. #11
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Je pense que c'est à cause du séparateur décimal de cet exemple qui vient de l'anglais :

    tu doit mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         decimalseparator := '.' ;
    avant l'appel à StrToFloat

    ensuite tu peux remettre la virgule.

    Charly

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut
    bonjour
    sa marche si je change +20 par +19
    pourquoi
    merci



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    procedure TForm1.Button1Click(Sender: TObject);
     var
     ex: extended;
     i:integer;
    begin
    decimalseparator:='.';
     ex := StrToFloat('-1.000000E+19');
     i:=round(ex);
     
     showmessage(inttostr(i));
     
    end;

  13. #13
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Ton nombre est trop grand pour être converti en entier

    même avec le type Int64 tu ne peux pas dépasser 4,61 E+18 (environ)

  14. #14
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Si tu veux de très grands nombres il faut que tu travaille en


    Double : de -5.0 x 10^–324 à 1.7 x 10^308 (équivalent à Real)

    ou en

    Extended : de -3.6 x 10^–4951 à 1.1 x 10^4932

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut
    Bonjour
    donc si je comprend bien je ne pourrais jamais
    mettre cette valeur dans un integer

    Merci vais trouver autre chose

  16. #16
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    Non pour la simple raison que ce n'est pas un entier mais un réel.

    Pourquoi tu ne veux pas travailler avec le type double ?

  17. #17
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 683
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 683
    Points : 13 092
    Points
    13 092
    Par défaut
    Jette un oeil à cette discussion. Ca peut t'intéresser

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion byte [] -> String
    Par MiJack dans le forum Langage
    Réponses: 3
    Dernier message: 20/10/2005, 18h16
  2. [C#] Conversion System.String en System.Drawing.Color
    Par Silex dans le forum Windows Forms
    Réponses: 6
    Dernier message: 27/04/2005, 08h21
  3. Réponses: 3
    Dernier message: 26/05/2004, 23h03
  4. conversion de String en Num
    Par Assiobal dans le forum SL & STL
    Réponses: 31
    Dernier message: 15/05/2004, 21h18
  5. Conversions de String à Integer
    Par Rank dans le forum Langage
    Réponses: 5
    Dernier message: 06/08/2003, 16h30

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