Des espaces insécables dans les billets de forum DVP

Claude Leloup

Dans un billet de forum, on ne dispose pas du caractère « espace insécable ».

Dès lors, dans le texte qui s'affiche, on se retrouve avec des ! ? ; et » orphelins en début de ligne.

Bof ! Dans les cas banals, ça a peu d'importance : l'orthographe y est si peu respectée, qu'on n'est pas à cela près !

Par contre pour les billets qui sont diffusés sous forme de news ou qui sont repris dans le Magazine, c'est plus gênant.

Voici un moyen de pallier cette lacune, pour ceux qui disposent d'Access.

- Titre : Des espaces insécables dans les billets de forum DVP

- Auteur : Claude Leloup

- Parution : 13 décembre 2015

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2015 Claude Leloup. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Ce que nous voulons éviter

- II. FAQ , pages cours et billets de forum, même combat !

- II-A. FAQ et pages de cours

- II-B. Billets de forum

- III. Un outil pour se faciliter l'encodage

- IV. Les étapes du processus

- V. Le programme

- V-A. Code

- V-B. Téléchargement

I - Ce que nous voulons éviter

II - FAQ , pages cours et billets de forum, même combat !

II-A - FAQ et pages de cours

Le dispositif en place pour les FAQ et les pages cours permet d'encoder des espaces insécables en saisissant <ALT + 0160>, mais c'est tellement peu commode que cela est rarement mis en pratique.

II-B - Billets de forum

Jusqu'il y a peu, ce n'était pas possible d'encoder une espace insécable dans un billet : <ALT + 0160> rend un astérisque à l'écran.

Anomaly vient d'ajouter les balises [nbsp][/nbsp]. Si vous encodez cette chaine de caractères dans le texte d'un billet, le rendu sera celui d'une espace insécable. C'est une solution… mais pas très commode non plus !

III - Un outil pour se faciliter l'encodage

Dans le cadre des corrections de news (une dizaine de pages par jour) et des demandes de correction orthographique de FAQ et de pages de cours, je me suis confectionné un formulaire en Access pour faciliter ce genre de correction.

IV - Les étapes du processus

1. D'abord corriger l'orthographe et la typographie du texte original en insérant des espaces (ordinaires) là où il en manque.

2. <CTRL+A> et <CTRL+C> pour copier le texte dans le presse-papiers.

3. Afficher le formulaire et <CTRL+V> pour coller le presse-papier dans la zone de texte.

4. Cliquer le bouton ad hoc selon le contexte. Le presse-papiers contient maintenant le texte corrigé, c'est-à-dire le texte original dans lequel le programme a remplacé, là où il faut, les espaces ordinaires soit par [nbsp][/nbsp] (« Billets Forum ») soit par des espaces insécables (« FAQ et Pages de cours »).

5. On revient sur la fenêtre DVP et <CTRL+V> pour y substituer le texte corrigé.

Bref, quelques secondes de plus pour la correction : peu d'effort supplémentaire au regard de la valeur ajoutée !

À titre de précaution, le texte original est stocké dans la zone de texte (carré vert).

Seule les combinaisons espace ordinaire/caractère les plus courantes sont traitées. (Voir le code pour plus de détails).

Pour les cas plus rares (espace devant un symbole d'unité, espaces pour séparer les chiffres dans les nombres à cinq chiffres et plus…), je me suis fait un raccourci clavier.

V - Le programme

V-A - Code

Option Compare Database
Option Explicit

Private Sub BtFAQ_Click()
Me.txtOriginal = Me.txt 'sauvegarde au cas où
Me.txt = Replace(Me.txt, " ;", " ;") 'dans le 2e argument l'espace = <ALT + 0160>
Me.txt = Replace(Me.txt, " :", " :")
Me.txt = Replace(Me.txt, "« ", "« ")
Me.txt = Replace(Me.txt, " »", " »")
Me.txt = Replace(Me.txt, " !", " !")
Me.txt = Replace(Me.txt, " ?", " ?")
Me.txt.SetFocus
DoCmd.RunCommand acCmdCopy
End Sub

Private Sub btForum_Click()
Me.txtOriginal = Me.txt 'sauvegarde au cas où
Me.txt = Replace(Me.txt, " ;", "[nbsp][/nbsp];")
Me.txt = Replace(Me.txt, " :", "[nbsp][/nbsp]:")
Me.txt = Replace(Me.txt, "« ", "«[nbsp][/nbsp]")
Me.txt = Replace(Me.txt, " »", "[nbsp][/nbsp]»")
Me.txt = Replace(Me.txt, " !", "[nbsp][/nbsp]!")
Me.txt = Replace(Me.txt, " ?", "[nbsp][/nbsp]?")
Me.txt = Replace(Me.txt, " %", "[nbsp][/nbsp]%")
Me.txt.SetFocus
DoCmd.RunCommand acCmdCopy
End Sub

Private Sub txtOriginal_DblClick(Cancel As Integer)
Me.txtOriginal.SetFocus
Me.txtOriginal.SelStart = 0
Me.txtOriginal.SelLength = Len(Me.txtOriginal.Text)
DoCmd.RunCommand acCmdCopy
End Sub

V-B - Téléchargement

Le programme est ici.