Gambas France BETA


Pas de compte ? Incription

[Resolu]IsString

Ce sujet est résolu.

1
AuteurMessages
décapode#1 Posté le 17/11/2013 à 08:51:24
Bonjour
Apparemment IsString n'existe plus par quoi à t-elle été remplacée ?
Merci des réponses
décapode#2 Posté le 17/11/2013 à 10:52:43
Bon après recherche, si cela intéresse quelqu'un ( je ne veux pas passer pour un prof ni avoir inventer l'eau chaude)

Tous les isBoolean, isString, isInteger...peuvent être remplacés par : [...] is Truc[].
Je ne dois pas être très clair donc un petit code :

Public Sub Main()

Dim bol As Boolean
Dim Monchifr As New Integer[1]

Monchifr[0] = "12"
Print Monchifr[0]
If [Monchifr[0]] Is String[] Then Print " Monchifr[0] est une chaine"
If [Monchifr[0]] Is Integer[] Then Print " Monchifr[0] est un integer"
Print bol
If [bol] Is Integer[] Then Print "bol est un integer"
If [bol] Is Boolean[] Then Print "bol est un boolean"
End
*****************************
Retourne :

12
Monchifr[0] est un integer
False
bol est un boolean
***************************
Noter que Monchifr[] prend les strings et les converties en integer, sans erreur si le contenu est au format integer
Si on met Monchifr[0] = "12.12" ou Monchifr[0] = "12,12" ça plante

Voilà si ça peut aider, ou me dire ou complèter si j'ai dit des c....ies
Reivillo#3 Posté le 18/11/2013 à 11:50:47
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Bonjour décapode.

Effectivement <isTypeDeDonnée>,
ne fonctionne pas sous GB3.
Alors que sous GB2, c'est OK:
1
2
DIM MyVar AS INTEGER = 1
PRINT If(IsInteger(MyVar), "Oui", "Non")
Peut-être un Bogue à signaler.

Reivillo.

Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
décapode#4 Posté le 18/11/2013 à 12:03:38
Salut Reivillo
Bon si tu n'y trouves rien à redire je le passe en résolu.
As tu vu mon post dans l'IDE
gambix#5 Posté le 22/11/2013 à 13:14:06
Faire simple !Stop... la il y a erreur

Car :

Dim sVar as string = 1

Print IsInteger(sVar)

-> true


IsInteger retourne si la valeur peut être interprétée comme un integer ... pas si le type de variable est un integer

Il faut utiliser TypeOf

If TypeOf(sVar) = gb.Integer then Print "C'est un Entier"

http://gambasdoc.org/help/lang/typeof?v3

Ensuite.

"IS"

Indique si on est de cette classe ou si on Herite ce celleci

Par exemple:

If hMyForm IS Form then dira true si hMyForm est un Formulaire

Mais hMyForm Is Container est true aussi

Et hMyForm Is Control aussi.

Car un formulaire est un container qui est un controle

Quand tu dis [MonChiffre[0]] IS Integer[] ... OU c'est vrai c'est bien un tableau Integer... mais pas un entier

Car Si Monchiffre[0] est = 3 ça revien a dire

if [3] Is Integer[] ... sachant que [] construit un tableau en fonction du contenu

[1,2,3] créé un integer[]
[1.0,2.0] créé un Float[]
[true,False] créé un Boolean[]

Un Tableau en gambas n'est pas un type de variable mais un type de classe.

Donc pour conclure ton exemple ... est pourrit lol... Mais on y est tous passé.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DIM v AS VARIANT
""
FOR EACH v IN [TRUE, 1, "toto", 1.3]
PRINT "The Value " & v & " is a ";
SELECT CASE TypeOf(v)
CASE gb.Integer
PRINT "Boolean"
CASE gb.String
PRINT "String"
CASE gb.Float
PRINT "Float"
CASE gb.Boolean
PRINT "Boolean"
END SELECT
NEXT


Moins de texte dans une signature c'est agrandir son espace.
gambix#6 Posté le 22/11/2013 à 13:16:10
Faire simple !V2

IsInteger
Result = IsInteger ( Expression ) AS Integer
Returns TRUE if the datatype of Expression is Integer.


V3
IsInteger
Result = IsInteger ( String ) AS Integer
Return if a string can be safely interpreted as an Integer.
Moins de texte dans une signature c'est agrandir son espace.
1