web-dev-qa-db-fra.com

Existe-t-il un autre moyen de concaténer au lieu d'utiliser le mot clé CONCATENATE?

Existe-t-il un autre moyen de concaténer dans ABAP au lieu d'utiliser le mot clé CONCATENATE ?

Un exemple utilisant CONCATENATE:

DATA:
  foo    TYPE string,
  bar    TYPE string,
  foobar TYPE string.

  foo = 'foo'.
  bar = 'bar'.

  CONCATENATE foo 'and' bar INTO foobar SEPARATED BY space.
13
Eduardo Copat

Vous pouvez (à partir de ABAP 7.02 je suppose) utiliser '&&' pour concaténer deux chaînes.

Data:
foo    TYPE string,
bar    TYPE string,
foobar TYPE string.

foo = 'foo'.
bar = 'bar'.

foobar = foo && bar.

Cela fonctionne aussi avec les littéraux. 

foobar = 'foo' && 'bar'.

Pour préserver les espaces:

foobar = foo && ` and ` && bar
22
omnibrain

Oui, vous pouvez utiliser String Expressions , introduites dans ABAP 7.02 .

Un exemple suivant:

DATA:
  foo    TYPE string,
  bar    TYPE string,
  foobar TYPE string.

  foo = 'foo'.
  bar = 'bar'.

  foobar = |{ foo } and { bar }|.
11
Eduardo Copat

Outre les expressions de chaîne mentionnées par Eduardo Copat, il est parfois judicieux d'utiliser l'instruction MESSAGE ... INTO ..., en particulier si le texte est censé être traduit. Dans certaines traductions, les positions des variables les unes par rapport aux autres doivent être permutées et il est généralement beaucoup plus facile de traduire le texte You cannont combine &1 with &2. que les parties séparées You cannot combine et with.

5
vwegert

Vous pouvez utiliser && ou | {} {} | notations.

Vous n'avez pas besoin de taper et entre les objets, si vous donnez de l'espace, cela le prendra comme espace ou autre.

"no space:
foobar = |{ foo }{ bar }|.
"1 space:
foobar = |{ foo } { bar }|.

etc.

0
Oguz