Précédent   Forum des professionnels en informatique > Autres langages > Pascal > Lazarus
Lazarus Forum d'entraide sur Lazarus, l'EDI RAD multiplateforme basé sur Free Pascal
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2011, 09h48   #1
Membre expérimenté
 
Homme Gilles
Enseignant
Inscription : novembre 2006
Messages : 599
Détails du profil
Informations personnelles :
Nom : Homme Gilles
Âge : 53
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : novembre 2006
Messages : 599
Points : 570
Points : 570
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
selzig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 11h27   #2
Membre Expert
 
Avatar de tourlourou
 
Homme Yves Lemaire
Progr(amateur)
Inscription : mars 2005
Messages : 1 162
Détails du profil
Informations personnelles :
Nom : Homme Yves Lemaire
Âge : 49
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Progr(amateur)

Informations forums :
Inscription : mars 2005
Messages : 1 162
Points : 1 586
Points : 1 586
à 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 / Win 98 PE - Lazarus 0.9.30 / FPC 2.4.2 / Win 7 - Lazarus 0.9.28 / Ubuntu 11.04
tourlourou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 11h41   #3
Membre expérimenté
 
Homme Gilles
Enseignant
Inscription : novembre 2006
Messages : 599
Détails du profil
Informations personnelles :
Nom : Homme Gilles
Âge : 53
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : novembre 2006
Messages : 599
Points : 570
Points : 570
Bonjour,

Une requête conjointe ?
Cordialement. Gilles
selzig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 17h43   #4
Membre Expert
 
Homme
Étudiant
Inscription : juin 2009
Messages : 902
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France, Aveyron (Midi Pyrénées)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2009
Messages : 902
Points : 1 596
Points : 1 596
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
mick605 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/11/2011, 18h44   #5
Membre Expert
 
Avatar de tourlourou
 
Homme Yves Lemaire
Progr(amateur)
Inscription : mars 2005
Messages : 1 162
Détails du profil
Informations personnelles :
Nom : Homme Yves Lemaire
Âge : 49
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Progr(amateur)

Informations forums :
Inscription : mars 2005
Messages : 1 162
Points : 1 586
Points : 1 586
Citation:
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 / Win 98 PE - Lazarus 0.9.30 / FPC 2.4.2 / Win 7 - Lazarus 0.9.28 / Ubuntu 11.04
tourlourou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 19h26   #6
Membre expérimenté
 
Homme Gilles
Enseignant
Inscription : novembre 2006
Messages : 599
Détails du profil
Informations personnelles :
Nom : Homme Gilles
Âge : 53
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : novembre 2006
Messages : 599
Points : 570
Points : 570
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
selzig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 20h41   #7
Membre émérite
 
Avatar de DOLPat®
 
Homme Patrick
Technicien maintenance
Inscription : février 2003
Messages : 425
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 50
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Industrie

Informations forums :
Inscription : février 2003
Messages : 425
Points : 815
Points : 815
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 :
1
2
3
4
5
6
7
8
9
10
11
  TryEncodeDate();
  TryEncodeTime();
  TryFloatToCurr();
  TryStrToInt();
  TryStrToQWord();
  TryStrToInt64();
  TryStrToBool();
  TryStrToFloat();
  TryStrToDate();
  TryStrToDateTime();
  TryStrToCurr();
__________________
À +
Pat.


Si vous avez trouvé chaussure à votre pied... euh solution à votre problème, n'oubliez pas de clôturer le sujet en le marquant comme:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Delphi 2005 Édition Personnelle

Lazarus 0.9.31 r33481 FPC 2.5.1 x86_64-win64-win32/win64
DOLPat® est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h36.


 
 
 
 
Partenaires

Hébergement Web