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 d'une variable en string


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Par défaut Conversion d'une variable en string
    Bonjour,

    Je cherche une fonction qui me permettrait de convertir n'importe qu'elle variable en string

    Existe-t-il une fonction qui permet de connaitre le type de variable ?

    un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if VarIsInt then ...
    If VarIsFloat then ...

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 910
    Billets dans le blog
    6
    Par défaut
    j'ai peur de dire des bêtises, mais le compilo a besoin de connaître le type des variables => pas possible, sauf si tu utilises les variants, de type inconnu à la compilation, et qui contiennent donc une info de type, mais auxquels je ne connais rien !

    as-tu réellement besoin de traiter des variables de type inconnu pour les convertir en chaîne ? ou bien serait-ce une simple facilité de codage d'avoir une procédure générique ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Par défaut
    Merci pour ta réponse

    En fait je vais chercher des données dans une DB grace à une fonction
    qui ressemblerait à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function ShowField(dsField: TDataSource; Field: String): string;
    begin
      if IsInt then
        result := IntToStr(dsField.DataSet.FieldByName(Field).AsInteger);
      if IsFloat then
        result := FloatToStr(dsField.DataSet.FieldByName(Field).AsFloat);
      if IsDate then
        ...
    end;
    Et je l'appelle comme ceci
    ShowField(monDataSource; monChamps)

    Je voulais tout simplement simplifier la fonction
    monDataSource.DataSet.FieldByName('monChamps').AsString

    Le problème c'est que je ne connais pas à l'avance le format des données stockées dans ma DB...

  4. #4
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut


    pourquoi n'utilises-tu pas simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dsField.DataSet.FieldByName(Field).AsString;

    [EDIT]
    sinon pour ce que tu cherches c'est la propriété DataType du TField
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dsField.DataSet.FieldByName(Field).DataType;

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Par défaut
    Le but c'est juste de me simplifier la vie...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    case dsSuppliers.DataSet.FieldByName('supplier_id').DataType of
        ftInteger:
          showmessage(IntToStr(dsSuppliers.DataSet.FieldByName('supplier_id').AsInteger));
        ftDate:
          showmessage(DateToStr(dsSuppliers.DataSet.FieldByName('supplier_id').AsDateTime));
    end;
    J'ai essayé ceci mais il n'en veut pas...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Par défaut
    J'ai trouvé en faisant comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      case AnsiIndexStr(GetEnumName(TypeInfo(TFieldType),
            Ord(dsField.DataSet.FieldByName(Field).DataType)),
            ['ftString', 'ftAutoInc', 'ftInteger', 'ftDate']) of
        0: result := dsField.DataSet.FieldByName(Field).AsString;
        1: result := IntToStr(dsField.DataSet.FieldByName(Field).AsInteger);
        2: result := IntToStr(dsField.DataSet.FieldByName(Field).AsInteger);
        3: result := DateToStr(dsField.DataSet.FieldByName(Field).AsDateTime);
      end;
    Merci pour votre aide...

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

Discussions similaires

  1. Conversion d'une variable string en tableau
    Par kyino dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/02/2015, 13h14
  2. Conversion d'une variable string en BSTR
    Par thibthib71 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/09/2012, 11h52
  3. Test d'une variable type string vide
    Par benny-blanco dans le forum C#
    Réponses: 5
    Dernier message: 08/08/2012, 18h04
  4. conversion d'une variable sous CVI
    Par Invité(e) dans le forum C
    Réponses: 0
    Dernier message: 26/11/2009, 14h17
  5. Conversion d'une variable
    Par johntayback dans le forum C++
    Réponses: 9
    Dernier message: 18/06/2009, 10h14

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