ADRESSE

ADRESSE

permet de reformater un champ adresse avec une triple fonction

  1. CASSE :
    1. Il peut mettre l’adresse en MAJUSCULES (par défaut)
    2. En minuscules (aucun intérêt pratique)
    3. En Capitales (1ere lettre Majuscules, reste en minuscules – question de gout)
  2. Macro commande :
    • Consiste à remplacer un mot (en général court) par un autre, ce qui permet une écriture rapide d’adresses complexes.
      • Exemples :
        • mal => maréchal
        • imp => impasse
        • ² => BIS
        • st = Saint etc …
  3. Correcteur orthographique :
    • Consiste à remplacer un mot régulièrement mal orthographié par un autre
      • Exemples :
        • rie d la pet => RUE DE LA PAIX

DÉMO EN VIDEO

 

Mise en œuvre

Utilisation tout manuel

  1. Copier l’adresse dans le presse papier (sélection puis CTRL+C)
  2. Lancer ADRESSE.EXE
  3. Recoller le résultat dans le champ adresse (CTRL+V)

Utilisation en tout automatique (recommandé)

  • Nécessite l’installation du programme CLAVIER+ chargé de taper les séquences de touches à notre place

clavier_adresse

  1. Création d’un RACCOURCI TEXTE : CTRL+ALT+A (comme adresse par exemple)
  2. TEXTE DU RACCOURCI =(utiliser l’assistant sous le doigt pointé).
    [Ctrl + ORIGINE][Ctrl + Maj + FIN][Ctrl + C][[C:\\chemin...\\adresse.exe MAJ]][][Ctrl + V]
  3. Activer pour MEDYCS uniquement (pour préserver ce raccourci pour d’autres actions, pour les autres programmes)
Explication du script
[Ctrl + ORIGINE]
curseur au début du champ
[Ctrl + Maj + FIN]
sélection de la totalité du texte
[Ctrl + C]
copie dans le presse papier
[[C:\\chemin...\\adresse.exe MAJ]]
lancement du programme ADRESSE.EXE avec le paramètre MAJ (majuscules)
[]
à la fin de la conversion le clavier reprend le “focus” sur le champ adresse
[Ctrl + V]
Et y recolle la conversion

Edition du fichier de configuration :

  • L’ouverture du fichier ADRESSE.INI qui apparait à la première ouverture de ADRESSE.EXE, permet le paramétrage fin de l’action
  • Il comporte 2 sections :
    • OPTIONS
    • REMPLACER
  • Pour régénérer le fichier de configuration par défaut, il suffit de détruire le adresse.ini et de relancer le programme.
Adresse.INI par défaut
[OPTIONS]
==> OPTIONS DISPONIBLES POUR LA CASSE=MAJ, MIN, CAP
CASSE=MAJ
[REMPLACER]
==> SYNTAXE REMPLACER:
MOT A REMPLACER=MOT QUI LE REMPLACE

ATTENTION !!! A NE PAS METTRE D'ESPACE DANS LE MOT A GAUCHE!!!
Dans un texte, un mot ne sera remplacé que s'il est suivi d'un espace, d'un point ou d'un saut de ligne
Si le dernier mot de l'adresse doit être remplacé, il faut donc le faire suivre soit d'un point final, soit d'un saut de ligne

AV=AVENUE
AL=ALLEE
AB=ABBE
BV=BOULEVARD
D=DE
IMP=IMPASSE
GAL=GENERAL
MAL=MARECHAL
PASS=PASSAGE
ST=SAINT
R=RUE
RIE=RUE
VIL=VILLAGE
VILL=VILLAGE
²=BIS
&=ET
LEFB=LE FORT BLOQUE
LOM=LOMENER
Code Source Pascal
program adresse;

uses
  clipbrd,
  System.SysUtils,
  dialogs,
  strutils,
  System.Classes, {StringList}

  jc32_INI,
  jc32_str;

{$R *.res}

var
  i:                            integer;
  s, str_cherche, str_remplace: string;
  casse:                        string;

  liste_mots: TStringList;

const
  cr = ^m + ^j;

begin

  { Liste des Remplacements par défaut : uniquement à la première utilisation }
  if getstr('OPTIONS', 'CASSE', '') = '' then
    Begin
      savestr('OPTIONS', '=', '> OPTIONS DISPONIBLES POUR LA CASSE=MAJ, MIN, CAP');

      savestr('REMPLACER', '=', '> SYNTAXE REMPLACER:' + cr + 'MOT A REMPLACER=MOT QUI LE REMPLACE' + cr + cr +
          'ATTENTION !!! A NE PAS METTRE D''ESPACE DANS LE MOT A GAUCHE!!!' + cr +
          'Dans un texte, un mot ne sera remplacé que s''il est suivi d''un espace, d''un point ou d''un saut de ligne'
          + ^m + ^j +
          'Si le dernier mot de l''adresse doit être remplacé, il faut donc le faire suivre soit d''un point final, soit d''un saut de ligne'
          + cr );

      savestr('REMPLACER', 'AV', 'AVENUE');
      savestr('REMPLACER', 'AL', 'ALLEE');
      savestr('REMPLACER', 'AB', 'ABBE');
      savestr('REMPLACER', 'BV', 'BOULEVARD');
      savestr('REMPLACER', 'D', 'DE');
      savestr('REMPLACER', 'IMP', 'IMPASSE');
      savestr('REMPLACER', 'GAL', 'GENERAL');
      savestr('REMPLACER', 'MAL', 'MARECHAL');
      savestr('REMPLACER', 'PASS', 'PASSAGE');
      savestr('REMPLACER', 'ST', 'SAINT');
      savestr('REMPLACER', 'R', 'RUE');
      savestr('REMPLACER', 'RIE', 'RUE');
      savestr('REMPLACER', 'VIL', 'VILLAGE');
      savestr('REMPLACER', 'VILL', 'VILLAGE');

      savestr('REMPLACER', '²', 'BIS');
      savestr('REMPLACER', '&', 'ET');

      { Spécificité locales }

      savestr('REMPLACER', 'LEFB', 'LE FORT BLOQUE');
      savestr('REMPLACER', 'LOM', 'LOMENER');
    End;

  s          := '';
  liste_mots := TStringList.create;

  casse := getstr('OPTIONS', 'CASSE', 'MAJ');

  if ParamCount > 0 then
    casse := ParamStr(1);

  if casse = '' then
    Begin
      showmessage('Argument vide !');
      exit;
    End;

  { TRAITEMENT }

  s := Clipboard.AsText;
  try

    { REMPLACEMENT }

    { Crée un tableau des mots présents }

    liste_mots.DelimitedText := s;

    { Cherche pour chaque mot s'il existe un remplacement }

    for i := 0 to liste_mots.Count - 1 do
      Begin
        str_cherche := liste_mots[i];
        { Si cherche se termine par un point }
        if pos('.', str_cherche) = length(str_cherche) then
          str_cherche := copy(str_cherche, 1, length(str_cherche) - 1);

        str_remplace := getstr('REMPLACER', str_cherche, '');

        if (str_remplace <> '') then
          if pos(str_cherche + ' ', s) > 0 then // Le mot doit être suivi d'un espace
            s := replacestr(s, str_cherche + ' ', str_remplace + ' ')
          else
            if pos(str_cherche + '.', s) > 0 then
              // ou terminé par un point
              s := replacestr(s, str_cherche + '.', str_remplace)
            else
              if pos(str_cherche + ^m, s) > 0 then
                // ou suivi d'un retour chariot
                s := replacestr(s, str_cherche + ^m, str_remplace + ^m)
      End;

    { Change la casse sur demande }

    if (casse = 'MIN') then
      s := LowerCase(s)
    else
      if (casse = 'CAP') then
        Begin
          s := Capitalize(Killax(s))
        End
      else
        s := uppercase(Killax(s));


    // showmessage(param);

    Clipboard.AsText := trim(s);

    savestr('OPTIONS', 'CASSE', casse);

    { Le fichier des mots est uniquement rempli à la main }

  finally
    liste_mots.Free;
  end;

end.

 

2 commentaires

  1. JC BlueGYN JC BlueGYN

    Question :
    –j’ai un espace supplémentaire qui est automatiquement affiché en début de chaque adresse ?

    Réponse :
    –cette petite anomalie, n’est pas liée au programme adresse, mais au générateur de frappes Clavier+
    –Il faut bien veiller, à n’ introduire aucun espace supplémentaire entre les commandes
    –il faut écrire [CTRL A][CTRL B]
    –et pas [CTRL A] [CTRL B]

    (Les accolades de fin, et de début doivent toujours se toucher)

  2. JC BlueGYN JC BlueGYN

    =============
    Version du 9 10
    =============

    L’algorithme Téléform simplifié est désormais intégré dans ADRESSE.EXE,

    On peut donc maintenant formater un Numéro de téléphone qui comporte entre 4 et 10 chiffres avec le même programme (si le champ Téléphone comporte une seule lettre , l’algorithme échoue, contrairement à Téléform)

Laisser un commentaire