FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
print val(text$(1)) Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
print val(text$(1)) Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
print val(text$(1)) Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
print val(text$(1)) Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
print val(text$(1)) Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
print val(text$(1)) Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
print val(text$(1)) Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
print val(text$(1)) Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
print val(text$(1)) Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
print val(text$(1)) Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
print val(text$(1)) Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
print val(text$(1)) Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
print val(text$(1)) Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
print val(text$(1)) Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
print val(text$(1)) Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Cartes Pokémon : la prochaine extension ...
Voir le deal

 

 print val(text$(1))

Aller en bas 
+2
musicgames
gmx_91
6 participants
AuteurMessage
gmx_91




Nombre de messages : 6
Date d'inscription : 28/07/2008

print val(text$(1)) Empty
MessageSujet: print val(text$(1))   print val(text$(1)) EmptyLun 28 Juil 2008 - 17:25

Bonjour,

Re-félicitations pour le boulot qu'est Panoramic

J'ai fais un programme dans lequel il existe un objet edit 1
Quand je teste la valeur saisie par l'utilisateur (je cherche une valeur numérique) alors que "list 1" ne contient que des chaines. Pour vérifier que l'opérateur a bien placé des chiffres et non pas du texte je pense qu'il faut que je cherche la valeur de la chaine placée dans edit 1, mais la simple ligne :
print val(text$(1)) me renvoie un message d'erreur : Not Correct Expression : Error in VAL() function. Line: 29

C'est moi qui n'est pas compris ou y a-t-il une astuce ?

GMx_91
Revenir en haut Aller en bas
musicgames




Nombre de messages : 55
Date d'inscription : 21/01/2008

print val(text$(1)) Empty
MessageSujet: Re: print val(text$(1))   print val(text$(1)) EmptyLun 28 Juil 2008 - 18:08

Bonjour jmx_91,
Cette erreur apparaît chez moi quand l' utilisateur n' a rien tapé dans l' objet edit 1. Alors la fonction val() ne trouve pas de chaîne de caractères à transformer en entier. On peut entrer par défaut un texte dans l' objet edit 1, avec la commande text:
Code:

edit 1 : top 1,100
text 1,"267"
 
print val(text$(1))
ou trouver une autre solution. Smile
Revenir en haut Aller en bas
gmx_91




Nombre de messages : 6
Date d'inscription : 28/07/2008

print val(text$(1)) Empty
MessageSujet: Re: print val(text$(1))   print val(text$(1)) EmptyMer 30 Juil 2008 - 13:29

Je regrette que la fonction val() ne retourne pas 0 lorsque la chaine contient autre chose que des valeurs numériques

Dans le programme ci-dessous

Code:
1  dim a$, i%
2  a$= "coucou"
3  print a$
4  i%= val(a$)
5  print str$(i%) : rem ou simplement print i%
le programme devrait renvoyer

coucou
0

Or le programme plante avec une erreur à la ligne 4

Ce retour "zéro" à une réponse non numérique me semble très commode pour vérifier la conformité de la saisie.

Je programme déjà beaucoup plus de lignes pour contrôler l'opérateur, là, ça fait beaucoup plus de code me semble-t-il.

A moins que je n'affirme quelque chose de faux
Revenir en haut Aller en bas
musicgames




Nombre de messages : 55
Date d'inscription : 21/01/2008

print val(text$(1)) Empty
MessageSujet: Re: print val(text$(1))   print val(text$(1)) EmptyMer 30 Juil 2008 - 14:18

Il est possible de vérifier s' il y a une réponse non numérique, en examinant le code ASCII des caractères entrés par l' utilisateur :
Code:

label traiter_edit1

dim i, lettres$(30), num%

edit 1
top 1,100

button 2
top 2,150
caption 2,"VALIDER"
on_click 2,traiter_edit1
 
num% = 1

end

traiter_edit1:

if len(text$(1)) = 0
  message "vous n' avez rien tapé !"
end_if
if len(text$(1)) > 0
  for i=1 to len(text$(1))
      lettres$(i) = mid$(text$(1),i,1)
      if (asc(lettres$(i)) < 48) or (asc(lettres$(i)) > 57)
        num% = 0
      end_if
  next i
 
  if num% = 0
      message "veuillez taper uniquement des valeurs numériques !"
  end_if
  if num% = 1
      print val(text$(1))
  end_if
end_if

return

la fonction VAL() retourne 0 en transformant la chaîne "0" en valeur numérique :

Code:

edit 1
top 1,100
text 1,"0"

print val(text$(1))

Cette valeur ne peut donc pas correspondre à une réponse non numérique.


Dernière édition par musicgames le Mer 30 Juil 2008 - 14:37, édité 1 fois
Revenir en haut Aller en bas
gmx_91




Nombre de messages : 6
Date d'inscription : 28/07/2008

print val(text$(1)) Empty
MessageSujet: Re: print val(text$(1))   print val(text$(1)) EmptyMer 30 Juil 2008 - 14:36

C'est encore beaucoup plus compliqué quand il y a une valeur décimale où le code du "point" est 46.

Mais il ne faut qu'un seul "point" dans la chaine.

Bref c'est possible mais c'est dommage de faire un outil aussi convivial et de devoir contrôler tout avec autant de code.

Merci quand même
Revenir en haut Aller en bas
Vaillant17




Nombre de messages : 34
Age : 74
Localisation : Charente_Maritime
Date d'inscription : 03/06/2008

print val(text$(1)) Empty
MessageSujet: Re: print val(text$(1))   print val(text$(1)) EmptyMer 30 Juil 2008 - 16:22

J'ai rencontré ce problème, et j'ai effectivement placé des contrôles avant l'exécution. Mais je ne nous faisons pas de souci, avec Panoramic, pas de problème ! que des solutions, et nous pouvons lui faire confiance.
A pluche
Revenir en haut Aller en bas
http://lesanneesvaillant.fr
Jack
Admin
Jack


Nombre de messages : 2386
Date d'inscription : 28/05/2007

print val(text$(1)) Empty
MessageSujet: Re: print val(text$(1))   print val(text$(1)) EmptySam 2 Aoû 2008 - 10:20

Citation :
Je regrette que la fonction val() ne retourne pas 0 lorsque la chaine contient autre chose que des valeurs numériques
Comment distinguer une valeur nulle retournée par un string "0" ou par un string n'étant pas une valeur numérique?
Code:
edit 1:left 1,50
print val(text$(1))
retourne une erreur car l'EDIT ne contient pas une valeur numérique
Code:
edit 1:left 1,50
text 1,0
print val(text$(1))
fonctionne et affiche 0

Je pense que la solution à ce problème serait une fonction, par exemple NUMERIC(V$), qui retournerait 1 si V$ est numérique et 0 sinon.

Dans ce cas, on pourrait faire:
Code:
if numeric(v$)=1
    v=val(v$)
    traitement ou utilisation de v
end_if
et cela éviterait arrêt de l'exécution du programme sur val d'une valeur non-numérique.
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

print val(text$(1)) Empty
MessageSujet: Re: print val(text$(1))   print val(text$(1)) EmptyLun 29 Juin 2009 - 16:31

Pour ma part je traite systèmatiquement l'entrée des valeurs d'un edit

la création de l'edit
Code:

edit 1

et le traitement de l'edit
Code:

if text$(1)="" then return
if numeric(text$(1))=0 then return

return renvoie automatique à la zone de saisie dans le ou les edit
première ligne de traitement vérifie que l'utilisateur à entrée une valeur
la seconde vérifie que c'est un nombre réel, si ce n'est pas le cas, renvoie à la zone de saisie

ensuite récupération des valeurs de l'edit

Code:

a = val(text$(1)
bien entendu les variables sont déclarées au préalable
georges
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

print val(text$(1)) Empty
MessageSujet: RE: print val(text$(1))   print val(text$(1)) EmptyMar 30 Juin 2009 - 21:32

Salut Georges,

Quand je pense que moi je tape çà

Code:

a$=text$(1)
n=numeric(a$)
if n=0 then message "Saisir une valeur numérique":text(1)="":return

Alors que
Code:

if numeric(text$(1))=0 then message "BlaBla": text(1)="":return

Ta méthode condensée est bien plus élégante et surtout plus courte.
Remarque que j'ajoute [text(1)=""] avant le RETURN. C'est pour vider l'EDIT, avant le retour vers celui-ci.

Continue de nous montrer ce genre de petits trucs auquels on ne pense pas toujours.

A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

print val(text$(1)) Empty
MessageSujet: re   print val(text$(1)) EmptyMar 30 Juin 2009 - 21:39

Petite rectification sur la synthaxe de text(1)="", il faut écrire text(1),""
Scuzi.
A+
Revenir en haut Aller en bas
Contenu sponsorisé





print val(text$(1)) Empty
MessageSujet: Re: print val(text$(1))   print val(text$(1)) Empty

Revenir en haut Aller en bas
 
print val(text$(1))
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» imprimer avec Print.dll
» Jeu aventure text
» bug de la fonction TEXT + synedit
» stretch_on et print
» demande pour recuperer un text speciale

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Un problème avec PANORAMIC?-
Sauter vers: