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 .NET Discussion :

Virgule et Point


Sujet :

Delphi .NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Virgule et Point
    Bonjour,

    Je suis débutant en Delphi, j'apprends sur le tas.
    Je suis face à un problème qui a déjà été traité dans le forum ([Résolu] Séparateur de décimaux : virgule au lieu du point). Dans mon programme, je lis des données (qui sortent d'un executable fortran) mais le problème est évidemment que les réels sont formatés avec un point alors qu'en delphi, il faut une virgule.
    J'ai bien entendu pensé à rechercher le point et le remplacer par une virgule, comme expliqué dans le forum. Mais je ne sais pas quelle instruction il faut utiliser. J'ai trouvé 'findtext' mais je n'ai pas vu d'exemple concret où il était utilisé. Peut-être cela existe-t-il sur le site et que je serais passé à côté?
    Si pas, quelqu'un saurait-il me débloquer?

    Merci d'avance.

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Essaie simplement avec la procédure POS.
    C'est écrit en Delphi .NET ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Points : 19
    Points
    19
    Par défaut
    Voici une petite procédure que j'utilise pour convertir une valeur donnée par l'utilisateur dans un éditeur.

    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
     
     
    function StringToFloat(Text: string): double;
    var
      i: integer;
      ch: char;
    begin
      try
        Result := StrToFloat(Text);
      except
        for i:= 1 to Length(Text) do
        begin
          ch := Text[i];
          case ch of
            '.': ch := ',';
            ',': ch := '.';
          end;
          Text[i] := ch;
        end;
        if Length(Text) = 0 then
          Result := 0
        else
          Result := StrToFloat(Text);
      end;
    end;

  4. #4
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Tu peux aussi changer la variable globale
    'DecimalSeparator'
    qui est décrite dans l'unité Sysutils. Le code ci dessous se compile aussi avec .NET

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var
      n1, n2 : single ;
    begin
      DecimalSeparator := '.' ;
      n1 := StrToFloat('123.45') ;
      DecimalSeparator := ',' ;
      n2 := StrToFloat('123,45') ;
      Label1.Caption := FloatToStr(N1+N2) ;

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Merci à vous pour les conseils.
    Je vais bien voir lequel je vais utiliser...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 25
    Points : 30
    Points
    30
    Par défaut
    Bonjour,
    il existe aussi

    StringReplace,fonction

    Renvoie une chaîne dans laquelle des occurrences d'une sous-chaîne sont remplacées par une autre sous-chaîne.

    Unité

    SysUtils

    Catégorie

    routines de gestion des chaînes

    Syntaxe Delphi :

    function StringReplace(constS,OldPattern,NewPattern:string;Flags:TReplaceFlags):string;

    Syntaxe C++:

    externPACKAGE AnsiString__ fastcall StringReplace(constAnsiStringS,constAnsiString
    OldPattern,constAnsiStringNewPattern,TReplaceFlagsFlags);

    Description

    StringReplace remplace les occurrences de la sous-chaîne spécifiée par OldPattern,par la sous-chaîne spécifiée par NewPattern.StringReplace considère que la chaîne source peut contenir des caractères multi-octets.

    S est la chaîne source dont les sous-chaînes sont modifiées.

    OldPattern est la sous-chaîne àlocaliser et àremplacer par NewPattern.

    NewPattern est la sous-chaîne qui remplace les occurrences de OldPattern.

    Flags est un ensemble d'indicateurs qui définissent la façon dont StringReplace localise et remplace les occurrences de OldPattern.Si Flags n'inclut pas rfReplaceAll,StringReplace ne remplace que la première occurrence de OldPattern dans S.Sinon,StringReplace remplace toutes les instances de OldPattern par NewPattern.Si le paramètre Flags inclut rfIgnoreCase,la comparaison ne tient pas compte de la casse.

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

Discussions similaires

  1. [JavaScript] transformer une virgule en point
    Par ep31 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 17/09/2007, 16h01
  2. Changer les virgules en points dans un fichier texte
    Par lilibert dans le forum MATLAB
    Réponses: 8
    Dernier message: 19/06/2007, 17h41
  3. Réponses: 4
    Dernier message: 23/02/2007, 10h56
  4. transformer la virgule en point avec format
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 25/07/2006, 14h09
  5. Virgule et point ...
    Par pifou02 dans le forum Access
    Réponses: 3
    Dernier message: 16/06/2005, 15h20

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