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
» Logiciel de planétarium.
print val(text$(1)) Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
print val(text$(1)) Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
print val(text$(1)) Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
print val(text$(1)) Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
print val(text$(1)) Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
print val(text$(1)) Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
print val(text$(1)) Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
print val(text$(1)) Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
print val(text$(1)) Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
print val(text$(1)) Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
print val(text$(1)) Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
print val(text$(1)) Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
print val(text$(1)) Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
print val(text$(1)) Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
print val(text$(1)) Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -29%
DYSON V8 Origin – Aspirateur balai sans fil
Voir le deal
269.99 €

 

 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 : 75
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 : 2395
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 : 70
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 : 70
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
» [Text$(N)] Ne récupère pas sur un combo
» bug de la fonction TEXT + synedit
» Ajouter la commande Text N,"texte" au mémo.

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: