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
» Mah-Jong européen new-look
par jjn4 Aujourd'hui à 15:48

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par pascal10000 Aujourd'hui à 13:46

» a l'aide klaus
par Minibug Aujourd'hui à 11:42

» KGF_dll - nouvelles versions
par Minibug Aujourd'hui à 1:48

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Aujourd'hui à 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» API Windows
par Klaus Jeu 7 Déc 2017 - 21:03

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

» j'ai un petit problème
par JL35 Mer 6 Déc 2017 - 21:58

» source vumetre avec delphi
par Klaus Mar 5 Déc 2017 - 23:22

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

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

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
RMont



Nombre de messages : 184
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 - 19: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 : 881
Date d'inscription : 19/01/2014

MessageSujet: Problème de date.   Mer 31 Aoû 2016 - 21: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 : 2408
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: j'ai un probléme avec la cde left$(s,n)   Jeu 1 Sep 2016 - 8: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 : 184
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 - 19: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 : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 4 Sep 2016 - 14: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 : 5613
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 - 15: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 : 184
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 - 19: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)
Voir le sujet précédent Voir le sujet suivant 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: