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

Lazarus Pascal Discussion :

TStringGrid : détecter le "type" du contenu d'une Cells [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut TStringGrid : détecter le "type" du contenu d'une Cells
    Bonjour,

    Existe-t-il un moyen de détecter le "pseudo-type" du contenu d'une Cells (numérique, chaîne, date, boolean) sans utiliser les try..except..end; (indispensables avec les StrToxxx)... un peu comme on peut le faire avec les variants ?

    Autrement dit, si Cells[aCol, ARow] := '12', si on transtype en Variant, "malheureusement" le variant est une varString... C'est normal, mais je péfèrerais qu'il m'indique varInt.

    Donc on peut essayer StrToFloat, StrToInt(Cells[aCol, aRow]), mais il faut protéger le transtypage par une exception... et on en arrive au problème soulevé par Pedestre dans une discussion récente.

    Cordialement. Gilles
    Dernière modification par Invité ; 16/11/2011 à 10h02.

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 930
    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 930
    Billets dans le blog
    6
    Par défaut
    à mon sens, non.

    un booléen et un entier ont la même taille, de même qu'un TDateTime est un Double...

    par contre, n'est-il pas possible de récupérer le type des colonnes par une requête conjointe ?
    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
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une requête conjointe ?
    Cordialement. Gilles

  4. #4
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Citation Envoyé par selzig Voir le message
    Existe-t-il un moyen de détecter le "pseudo-type" du contenu d'une Cells (numérique, chaîne, date, boolean) sans utiliser les try..except..end; (indispensables avec les StrToxxx)... un peu comme on peut le faire avec les variants ?
    Salut

    Contrairement a ce que tu dit, il n'est pas nécessaire d'utiliser les try except pour les StrTo... En effet, il existe les fonctions TryStrToInt, et StrToIntDef qui te seront bien utiles. C'est dommage que ces fonctions ne soient pas plus connues. Je pense qu'il existe de même les fonction TryStrToFloat, etc. ...

    Bonne chance

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 930
    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 930
    Billets dans le blog
    6
    Par défaut
    Une requête conjointe ?
    pas très clair, en effet !

    Si c'est bien dans le cadre de votre projet d'adaptation du StringGrid en DataSet, il y a requête pour le remplir. Une analyse de cette requête permettrait-elle d'en formuler une, "conjointe", destinée à récupérer le type des colonnes ?

    Mais je ne comprends pê pas bien le fonctionnement du DataSet...
    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 !

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Pour le Dataset, il y a en effet une requête mais le Tri doit pouvoir s'effectuer sur n'importe quelle colonne... notamment "calculée"...

    En effet, il existe une ribambelle de TryStrTo. MERCI !

    Bonne soirée.
    Cordialement. Gilles

  7. #7
    Membre émérite Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Par défaut
    Citation Envoyé par mick605 Voir le message
    C'est dommage que ces fonctions ne soient pas plus connues. Je pense qu'il existe de même les fonction TryStrToFloat, etc.
    Je ne connaissais pas non plus ces fonctions pourtant bien utiles. Et il y en a un paquet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      TryEncodeDate();
      TryEncodeTime();
      TryFloatToCurr();
      TryStrToInt();
      TryStrToQWord();
      TryStrToInt64();
      TryStrToBool();
      TryStrToFloat();
      TryStrToDate();
      TryStrToDateTime();
      TryStrToCurr();

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

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