Concaténation : "+" Vs "&"

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Concaténation : "+" Vs "&"

Messagepar Ahamay » 16 Nov 2009 à 15:12

quelqu'un pourrait il m'expliquer la différence profonde entre + et & quand il s'agit de concaténer des chaines en LS....

Parce que, par exemple :

Call doc.ReplaceItemValue("TestDbComment", "## Base Test Créée par Agent le " & Str(Now) &"##"&Chr$(13) & doc.GetItemValue("TestDbComment")(0))

ET

Call doc.ReplaceItemValue("TestDbComment", "## Base Test Créée par Agent le " + Str(Now) +"##"+Chr$(13) + doc.GetItemValue("TestDbComment")(0))


Bin c'est kiff-kiff
Et j'en ai plein ma musette des exemples comme celui ci.


Bref.... soyons académique.... selon IBM et ses Good Practices, quand doit on utiliser l'un ... ou l'autre ?
Si haut que l'on soit placé, on n'est jamais assis que sur son cul (Montaigne) 8)
Avatar de l’utilisateur
Ahamay
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 27 Nov 2007 à 09:30
Localisation : Completement à l'ouest

Messagepar Ahamay » 16 Nov 2009 à 16:58

bin j'vois que ça vous laisse dubitatif ma question :)
Si haut que l'on soit placé, on n'est jamais assis que sur son cul (Montaigne) 8)
Avatar de l’utilisateur
Ahamay
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 27 Nov 2007 à 09:30
Localisation : Completement à l'ouest

Messagepar Michael DELIQUE » 16 Nov 2009 à 17:04

ben franchement j'aipas de réponse !
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar stloje » 16 Nov 2009 à 17:22

Selon ce qu'on m'a déjà expliqué, le signe + et & sont deux opérateurs de concaténation, mais le signe + est surchargé lorsqu'il est utilisé sur une chaîne de caractères. A cause de sa nature première, qui est l'addition, il peu arriver qu'une erreur survienne lorsqu'il y a concaténation d'un numérique et d'une chaîne. Il est donc préférable de toujours utiliser le signe & pour indiquer que le traitement est bien une chaîne de caractères.
Avatar de l’utilisateur
stloje
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 335
Inscrit(e) le : 09 Sep 2008 à 13:18
Localisation : Orléans

Messagepar erenault » 16 Nov 2009 à 17:30

stloje a écrit:Selon ce qu'on m'a déjà expliqué, le signe + et & sont deux opérateurs de concaténation, mais le signe + est surchargé lorsqu'il est utilisé sur une chaîne de caractères. A cause de sa nature première, qui est l'addition, il peu arriver qu'une erreur survienne lorsqu'il y a concaténation d'un numérique et d'une chaîne. Il est donc préférable de toujours utiliser le signe & pour indiquer que le traitement est bien une chaîne de caractères.

Tiens ça expliquerait certaines des erreurs de logs dans une partie de l'appli ...
Il va falloir tout modifier :(
Merci
erenault
Premier posts
Premier posts
 
Message(s) : 25
Inscrit(e) le : 26 Mars 2008 à 11:29

Messagepar Ahamay » 16 Nov 2009 à 17:36

@erenault : désolé... c'était pas le but de ma question :oops:
Si haut que l'on soit placé, on n'est jamais assis que sur son cul (Montaigne) 8)
Avatar de l’utilisateur
Ahamay
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 27 Nov 2007 à 09:30
Localisation : Completement à l'ouest

Messagepar oguruma » 17 Nov 2009 à 11:14

bahhh c'est simple
le & te fait simplement la conversion de type ce que ne fait pas le + où les deux chaînes doivent être alpha

exemple 1
dim A as string
dim B as integer
dim C as string

A="lapins"
B=2
c= B + " " + A
==> provoquera une erreur
il faut donc faire
c= cstr(B) + " " + A
=> OK

on peut aussi fare
c= str$(B) + " " + A
mais le str$() ajout un blanc de tête pour la gestion du signe - ici transparent car comme en math le signe est ignoré par défaut sauf dans l'ensemble Z où le spécifie

dans les view basic (le basica ou gwbasic)le cstr n'existait et on se faisait tous un bon vieux DefFN cstr=(.........) [années 80....]

ou
c= B & " " + A
==> OK le & fait conversion de B en alpha

voili voilà !
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Messagepar Ahamay » 19 Nov 2009 à 09:31

Yessss.... 8)

Bin en voila une réponse qu'elle est bonne :)
c'est clair, simple, précis.... nickel !

Merci oguruma.
Si haut que l'on soit placé, on n'est jamais assis que sur son cul (Montaigne) 8)
Avatar de l’utilisateur
Ahamay
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 27 Nov 2007 à 09:30
Localisation : Completement à l'ouest

Messagepar erenault » 20 Nov 2009 à 12:12

Ahamay a écrit:@erenault : désolé... c'était pas le but de ma question :oops:


Pas de problème, il vaut mieux savoir que laisser trainer :lol:
erenault
Premier posts
Premier posts
 
Message(s) : 25
Inscrit(e) le : 26 Mars 2008 à 11:29

Messagepar Michael DELIQUE » 20 Nov 2009 à 17:50

je ne dirais qu'un mot : tip
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar oguruma » 23 Nov 2009 à 15:02

c'est fait
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Messagepar Michael DELIQUE » 23 Nov 2009 à 15:13

Merci Maître
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar d.bugger » 08 Déc 2009 à 12:10

Avatar de l’utilisateur
d.bugger
Modérateur
Modérateur
 
Message(s) : 849
Inscrit(e) le : 15 Juin 2006 à 09:19
Localisation : Drôme, France

Messagepar Michael DELIQUE » 08 Déc 2009 à 12:26

en effet !

le billet de de septembre 2005 je serais curieux de voire les résultats sur la derniere version !

mais en gros que l'on utilise + ou & ça reviens a peut pres au meme !
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar oguruma » 09 Déc 2009 à 10:06

nous sommes d'accord, le perf peuvent évoluer sensiblement sur un gros volume d'opérations avec un grand nombre de documents à traiter dans une vue
avec la version 8 (plus rapide) il n'y a quasiment plus de différences
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE


Retour vers Développement

cron