Concaténation : qu’est ce que c’est ?

Personnellement j’ai découvert le mot “concaténation” en apprenant à programmer. Connaissiez-vous ce mot avant de le croiser dans l’informatique ? Savez-vous clairement ce qu’il signifie ? Regardons ensemble ce qu’est la concaténation.

 

Définition de concaténation en Français

À tout hasard, j’ai jeté un coup d’œil sur le site du dictionnaire Larousse pour vérifier si ce mot avait d’autres sens. Voici ce que j’ai trouvé :

  • Enchaînement des idées entre elles, des faits entre eux suivant la causalité.
  • Dans certains langages de programmation, enchaînement de deux listes ou de deux chaînes de caractères mises bout à bout.
  • Juxtaposition et enchaînement d’unités linguistiques dans un ordre donné.

Source : https://www.larousse.fr/dictionnaires/francais/concat%C3%A9nation/17858

J’ai été surpris en préparant cet article de découvrir que l’on peut utiliser ce mot en français courant, au délà de la programmation. Comme quoi, nous avons toujours de nouvelles choses à apprendre. Certes, le glisser lors d’un repas familial relève du challenge. Et même là, il est probable que peu de personnes connaissent ce mot.

 

La concaténation en programmation

Passons sur ces autres définitions et concentrons-nous sur l’informatique :

“enchaînement de deux listes ou de deux chaînes de caractères mises bout à bout”.

Pour les listes, je découvre en même temps que vous.

Je l’ai surtout rencontré et utilisé pour les chaînes de caractères. C’est vraiment son usage principal.

Mettre des chaînes de caractères bout à bout correspond à ceci en pseudo-code :

Chaîne maNouvelleChaine = concatener("Je vais " , "à la plage !");

La fonction concaténer va prendre les deux chaînes de caractères et les mettre l’une à la suite de l’autre, dans l’ordre des paramètres. Ainsi, dans la variable maNouvelleChaîne, il y aura le contenu suivant :

"Je vais à la plage !"

J’ai choisi ici de vous montrer la concaténation sous la forme d’une fonction prenant deux paramètres pour les mettre bout à bout, je trouve que c’est une forme plus facile à comprendre.

Dans la plupart de langages (pour ne pas dire tous) il existe un opérateur pour réaliser la concaténation. Souvent il s’agit du “+”, parfois du “.”. Voici quelques exemples :

En Java : String maNouvelleChaine = "Je vais " + "à la plage !";

En C# : string maNouvelleChaine = "Je vais " + "à la plage !";

En PHP : maNouvelleChaine = "Je vais " . "à la plage !";

En JavaScript : maNouvelleChaine = "Je vais " + "à la plage !";

 

Les spécificités en SQL

Vous noterez qu’en SQL c’est un petit peu différent. L’opérateur utilisé est souvent le || (double pipe).

Vous rencontrez peut-être le caractère | pour la première fois (prononcez /paɪp/).

Il est sur votre clavier, souvent avec la combinaison de touche AltGr – 6.

Le standard ANSI définit la méthode CONCAT, donc tous les SGBD (Systèmes de Gestion de Bases de Données) sont censés le proposer. Certains ont mis plus de temps à le mettre en place, donc concat ne fonctionnera pas toujours selon votre SGBD ou selon sa version. Renseignez-vous.

Voici quelques grands cas (pour les dernières versions) :

Oracle : || ou concat()

Mysql : || ou concat()

Sql Server : + ou concat()

Postgresql : || ou concat()

Attention que vous aurez peut-être un paramètre à activer sur votre SGBD. Ainsi, pour utiliser les || sur MySQL, vous devez activer le paramètre PIPES_AS_CONCAT (https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sqlmode_pipes_as_concat).

 

L’utilité de la concaténation

Bon, jusqu’à présent je suis resté sur des choses simples, et assez inutiles. Concaténer deux chaînes de caractères littérales qui se suivent n’a en effet pas grand intérêt : pourquoi ne pas en avoir écrit une seule directement ?

Sur ce point précisément, c’est parfois utile d’écrire de longues chaînes de caractères littérales sur plusieurs lignes pour les garder lisibles dans notre code. Nous arrêtons donc chaque chaîne en fin de ligne pour la concaténer avec la chaîne de la ligne suivante.

C’est un cas particulier et rare (en tout cas dans mon code).

Le cas typique, et que vous utiliserez souvent : concaténer des chaînes de caractères littérales avec des variables diverses. Cela peut être des variables de type chaînes de caractères, par exemple les noms, prénoms et emails des personnes. Ou aussi des variables de nombres entiers ou réels, par exemple le nombre d’enfants, le nombre de roues d’un véhicule, ou le salaire d’une personne.

En fait, la concaténation est très probablement l’opération que nous utilisons le plus en programmation. La plupart de messages affichés à l’utilisateur sont issus d’une concaténation.

Le code HTML est le résultat de la concatenation de beaucoup de choses

Les concaténations intensives dans les sites web

C’est encore plus vrai dans le domaine du développement web, pour la création du résultat HTML. Nous en avons parlé dans l’article sur le fonctionnement des applications web, et aussi, de manière plus pratique, dans celui sur les images dynamiques en PHP.

Pour rappel, le serveur web reçoit une demande utilisateur sous la forme d’une requête HTTP. Il déclenche un traitement dans un certain langage (Java, PHP, C#, Perl, C++, …). Ce traitement crée un fichier HTML résultat qui sera envoyé vers le navigateur dans la réponse HTTP.

La création du résultat HTML est une très grande succession de concaténations ! Non seulement, comme dans tous les programmes, nous concaténons des messages destinés aux utilisateurs avec des variables pour en afficher le contenu. En plus, ces messages et variables sont concaténés aux différents éléments HTML nécessaires pour afficher la page correctement.

En effet, la page HTML affiché à l’utilisateur est un immense puzzle. Nous nous servons de trois types de chaines de caractères concaténés ensembles :

  • du HTML de mise en forme,
  • des textes pour les libellés et les messages utilisateurs et
  • le contenu des variables à afficher (champs de la base de données, date et heure système, compteur, etc).

Ces manipulations de chaînes de caractères sont tellement importante que nous avons créé la notion de “Vue”, dans le modèle MVC (Modèle – Vue – Contrôleur).

 

Laissez en commentaire ce qui vous a surpris ou ce sur quoi vous aimeriez avoir plus d’information.

Partager l'article
  •  
  •  
  •  
  •  

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.