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

Langage Delphi Discussion :

symbole decimal sur fichier CSV


Sujet :

Langage Delphi

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    856
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 856
    Points : 266
    Points
    266
    Par défaut symbole decimal sur fichier CSV
    bonjour,

    je dois importer des fichier CSV dans des bases paradox.
    certain champ dans le fichier CSV sont des nombre (float) qui ont pour symbole décimal le point.
    j'a remarqué que lors de l'import ca ne fonctionne pas si le symbole décimal definit dans les paramètre du PC est la virgule

    Est ce qu'il y a un moyen de sursoir au paramètre du PC et de faire en sorte que le point fonctionne ?

    merci

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Salut;

    Tu peux toujours les importer comme étant text "string" sans te soucier du point décimal, puis dans un second lieu les traiter.

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 874
    Points : 11 363
    Points
    11 363
    Billets dans le blog
    6
    Par défaut
    tu dois pouvoir changer la valeur DecimalSeparator pour arranger les choses

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 577
    Points : 25 225
    Points
    25 225
    Par défaut
    Même principe que Just-Soft, tu récupère la valeur en chaine puis tu utilise cette fonction pour transformer la chaine en nombre à virgule !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var
      FormatSettings: TFormatSettings;
    begin
      // Le séparateur décimal est le point "." et non pas la virgule.
      GetLocaleFormatSettings(0, FormatSettings);
      FormatSettings.DecimalSeparator := '.';
      Result := StrToFloat(Value, FormatSettings);
      ...
    end;
    ou pour un vieux delphi n'ayant pas FormatSettings

    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
    function CheckDecimalSeparator(const S: string): string;
    begin
      Result := S;
      ReplaceChar(Result, ',', DecimalSeparator);
      ReplaceChar(Result, '.', DecimalSeparator);
    end;
     
    {* -----------------------------------------------------------------------------
    la procédure ReplaceChar remplace dans S le caractère OldChar par le caractère NewChar
    @param S chaine à modifier
    @param OldChar caractère à remplacer
    @parem NewChar caractère de substitution
    ------------------------------------------------------------------------------ }
    procedure ReplaceChar(var S: string; const OldChar, NewChar: Char);
    var
      i: Integer;
      p: PChar;
    begin
       if OldChar = NewChar then Exit;
     
       p := @S[1];
       for i := 0 to Length(S)-1 do
       begin
          if PChar(p+i)^ = OldChar then
             PChar(p+i)^ := NewChar;
       end;
    end;

Discussions similaires

  1. [AC-2000] Suppression lignes sur fichier CSV depuis Access
    Par electronedf dans le forum VBA Access
    Réponses: 8
    Dernier message: 25/10/2010, 13h35
  2. Requête sur fichier CSV via OLEDB
    Par Monkey_D.Luffy dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/10/2010, 10h04
  3. tri sur fichier CSV
    Par Mouadlib dans le forum Langage
    Réponses: 2
    Dernier message: 17/12/2009, 09h33
  4. Ecriture sur fichier csv
    Par PIMPMAX dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 09/01/2007, 11h55

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