FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Découpe dans une image
par JL35 Hier à 23:03

» FNC IsDateValide(d$) pour vérifier la validité d'une date
par Marc Hier à 21:51

» Pour faire plaisir à Marc37.
par Marc Hier à 21:46

» Couleur d'une variable qui n'est pas un mot-clé
par bignono Hier à 14:03

» Un catalogue de photos de fleurs, avec KBDD, affichage HTML
par Klaus Mer 21 Fév 2018 - 22:44

» KGF_dll - nouvelles versions
par Klaus Mer 21 Fév 2018 - 22:30

» Mah-Jong anglais
par jjn4 Mer 21 Fév 2018 - 14:22

» Partie fractionnaire d'un flottant
par silverman Mer 21 Fév 2018 - 14:19

» bug CREATE_HIDE : corruption de form
par silverman Mer 21 Fév 2018 - 13:32

» Racine carrée d’un nombre par l’algorithme de Héron
par Ouf_ca_passe Mer 21 Fév 2018 - 9:52

» Méthode manuelle d'extraction de la racine carrée
par pascal10000 Mer 21 Fév 2018 - 7:47

» [annulé]ON_MOVE n,l ne fonctionne que sur le form 0
par silverman Mar 20 Fév 2018 - 16:52

» Ludothèque Panoramic
par jjn4 Mar 20 Fév 2018 - 15:42

» Calculus
par Ouf_ca_passe Mar 20 Fév 2018 - 9:06

» 6 (en analyse):confusion de variable locale entre SUB et FNC
par Jack Mar 20 Fév 2018 - 8:18

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Février 2018
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
262728    
CalendrierCalendrier

Partagez | 
 

 j'ai un probléme avec la cde left$(s,n)

Aller en bas 
AuteurMessage
RMont



Nombre de messages : 191
Age : 75
Localisation : charente maritime
Date d'inscription : 29/12/2008

MessageSujet: j'ai un probléme avec la cde left$(s,n)   Mer 31 Aoû 2016 - 18:51



bonjour a tous
c'est dit dans le titre.
dans la doc ,il est dit : retourne les N premiers caractères du string$.
voila ce qui coince
je rentre une date commençant par 05xxxx sous forme chiffrée sans espace.
une fois tranformée en xx/xx/xx avec un 0 (zéro) en tête la date est tres fausse alors que 14xxxx, le résultat est bon
que faire pour résoudre ce problème?
voici mon exemple
Code:

 dim dat : dat=050816  :' 05 aout 16
' dim dat : dat=150816  :' 15 aout 16
dim a$ : a$=str$(dat)
dim b$
dim c$
dim d$
dim dat$

b$=left$(a$,2)
c$=mid$(a$,3,2)
d$=right$(a$,2)

print b$      :' pour verif
print c$      :' pour verif
print d$      :' pour verif

dat$=b$+"/"+c$+"/"+d$  :' pour verif
print dat$

' grid 5
' grid_write 5,1,1,dat$  :' c'est là que je me suis aperçu du problème  avec un zéro en tête

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Pedro Alvarez

avatar

Nombre de messages : 929
Date d'inscription : 19/01/2014

MessageSujet: Problème de date.   Mer 31 Aoû 2016 - 20:11

Bonsoir.

Tu écris ceci:

dim dat : dat=050816
dim a$ : a$=str$(dat)


Str$() efface le '0' placé en tête du nombre.

Tu dois donc ajouter, après a$=str$(dat):

if len(a$)=5 then a$="0"+a$
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2522
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: j'ai un probléme avec la cde left$(s,n)   Jeu 1 Sep 2016 - 7:30

bonjour a tous les 2 !

Ce n'est pas STR$() qui supprime le '0' !

Tu charge la date au début de ton programme dans une variable numérique 'dat'.
Et c'est cette variable qui ne garde pas le '0' !
Il suffit donc d'inscrire ta date dans une variable alphanumérique 'dat$'...

De plus tu peux alléger ton code de la manière suivante :

Code:
dim dat$ : dat$="050816"  :' 05 aout 16

MESSAGE dat$

dim b$ , c$ , d$

b$=left$(dat$,2)
c$=mid$(dat$,3,2)
d$=right$(dat$,2)

MESSAGE "jour : "+b$+CHR$(13)+"mois : "+c$+CHR$(13)+"année : "+d$ : ' pour verif

Si tu souhaite garder ton code tel quel alors tu dois ajouter une condition pour tester le nombre de caractères
dans ta chaîne. Pour moi c'est se compliquer la vie inutilement mais bon chacun ses goûts !

Code:

 dim dat : dat=050816  :' 05 aout 16
' dim dat : dat=150816  :' 15 aout 16


dim a$ : a$=str$(dat)

IF LEN(a$)=5 THEN a$="0"+a$

dim b$
dim c$
dim d$
dim dat$

b$=left$(a$,2)
c$=mid$(a$,3,2)
d$=right$(a$,2)

print b$      :' pour verif
print c$      :' pour verif
print d$      :' pour verif

dat$=b$+"/"+c$+"/"+d$  :' pour verif
print dat$

' grid 5
' grid_write 5,1,1,dat$  :' c'est là que je me suis aperçu du problème  avec un zéro en tête

J'en profite aussi pour rappeler les variables existantes dans Panoramic :

Il y a 3 types de variables:

Réel,
Entier (le nom est suivi par %),
String (le nom est suivi par $)

a% est un entier (a% = 14)
b$ est un string (b$ = "Salut")
d est réel (d=12.8953)


Bonne journée à tous ! cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
RMont



Nombre de messages : 191
Age : 75
Localisation : charente maritime
Date d'inscription : 29/12/2008

MessageSujet: Re: j'ai un probléme avec la cde left$(s,n)   Jeu 1 Sep 2016 - 18:53


bonjour a tous
@ minigug et pedro
le petit code que j'ai posté a été pour moi une interrogation. cette question était donc pourquoi le zero de tête disparaissait. comme cela n'était pas dit dans la doc , je me posais cette question.
mais qui donc supprime ce zero.
- pedro pense que c'est str$() qui le supprime
- minibug dit que c'est la variable dat( donc numerique)
vous avez surement raison tous les deux.
j'avais bien essayé un '0'+a$ mais le résultat n'était pas bon .
et pour finir ,je peux mettre le sujet comme résolu.
merci a vous

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8015
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 4 Sep 2016 - 13:18

essai ceci :
Code:
dim v
v = 012.23
print v

end

Tu verras que str$(v) n' y est pour rien dans la suppression du 0.
Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5744
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: j'ai un probléme avec la cde left$(s,n)   Dim 4 Sep 2016 - 14:08

Une variable numérique de type entier ou réel supprime automatiquement tous les zéros non significatifs que ce soit au début ou à la fin après le point décimal.
Exemples :
v = 0123 donne 123
v = 000123,456000 donne 123.456
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
RMont



Nombre de messages : 191
Age : 75
Localisation : charente maritime
Date d'inscription : 29/12/2008

MessageSujet: Re: j'ai un probléme avec la cde left$(s,n)   Lun 5 Sep 2016 - 18:56


bonjour a tous
merci papydall pour cette explication.
- je ne savais pas que ce zéro était systématiquement oté de la variable numérique.
- maintenant ," je sais".
j'ai donc employé la méthode minibug "dat$=0xxxxx" et bien sur cela fonctionne très bien.
ce sujet est donc résolu.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: j'ai un probléme avec la cde left$(s,n)   

Revenir en haut Aller en bas
 
j'ai un probléme avec la cde left$(s,n)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [/résolu] problème avec java à l'instalation :-/
» Problème avec Java
» [Résolu] problème avec avira
» Problème avec décodeur Tv
» problème avec Outlook

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: