Article
· Sept 15, 2024 3m de lecture

Comment trouver mon texte spécifique en ObjectScript

Vous connaissez probablement cette situation :
il y a quelque temps, vous avez trouvé une fonction $ZU très spéciale pour
un type de problème spécifique. Une sorte de formule mystique.
Elle est devenue populaire et a été utilisée par de nombreux programmeurs
dans tout votre code et toutes vos installations .

Plusieurs versions et updates plus tard, vous êtes informé par ISC que
votre $ZU mystique est déprécié et n'est plus supporté. Et on vous conseille
de le remplacer par un nouveau $something(). 

Alors, comment trouver et documenter l'utilisation de votre code mystère ?
Il pourrait se trouver dans les classes, dans le code MAC,  INT, INC.
Et il peut être distribué dans plusieurs namespaces.
Dans le passé, Studio n'était encore completé et peu adapté, mais lent et peu précis.

J'ai rencontré cette situation plus d'une fois dans différentes installations.
Source Control n'était pas disponible à l'époque
et n'a été que rarement utilisé lorsqu'il a été ajouté.

ObjectScript étant le seul choix possible pour relever ce défi, j'ai écrit mon propre outility.
Ma solution s'est développée au fil des ans et une fois que la migration vers IRIS a été planifiée,
j'ai vérifié une fois de plus à quel point elle était utile.
Et comme elle était écrite en ObjectScript pur, elle fonctionnait dans IRIS sans qu'aucun
caractère n'ait été modifié. Comme vous le savez peut-être, le problème de la recherche
d'un morceau de texte spécifique en ObjectScript n'a pas changé. 

Mon objectif personnel pour mon outility était

  • uniquement l'ObjectScript
  • pas de constructions fantaisistes, miraculeuses ou délicates
  • le moins possible de fonctions $advanced
  • préférer la lisibilité à l'élégance en faveur de la maintenance future
  • présenter le nombre d'occurrences comptées par espace de noms et par élément de code
  • pour les classes, diviser également 
    • parameter,
    • properties (si calculated)
    • methods
    • indices
  • une option pour montrer la ligne qui les contient
  • ne se soucient pas de la liste.
    • N'importe quel programme de terminal peut écrire un journal
    •  bash a son STDOUT à cet effet

Ce utility est donc disponible pour vous sur Open Exchange et GitHub
J'ai également créé une vidéo pour démontrer le péage en action.
Et il est également disponible sur Demo Server

Il vous suffit de démarrer depuis le terminal
user>DO ^rcc.find 

Et vous obtenez quelques questions

  •  quel est le texte que vous recherchez ?
  • verbose » ?
    • voulez-vous voir chaque ligne complète contenant votre texte ?
    • Attention, cela peut devenir une liste assez énorme
    • Un test récent a trouvé plus de 90000 résultats.
    • Avec verbose=1, on obtient plus de 90000 lignes.
  • Uniquement en majuscules ?
    • Cela résout le problème selon lequel une fonction peut être écrite
    • en majuscules, minuscules ou mixtes.
    • "Uppercase=1" garantit que vous ne manquez aucune occurrence
  • Quel type de code voulez-vous vérifier ? (CLS,MAC,INT,INC,ALL)
  • Quel namespace voulez-vous rechercher ?
    • Un namespace spécifique de votre liste ou ALL
    • pour ALL vous obtenez une liste condensée d'espaces de noms et de types
    • (non visible dans la vidéo)

La sélection de namespace lance la recherche.
Alors on danse !

USER>do ^rcc.find
----------------
 
enter search string [$ZU] <blank> to exit: RCC
          Verbose? (0,1) [0]:
          Force UpperCase? (1,0) [1]:
 
enter code type (CLS,MAC,INT,INC,ALL) [ALL]: CLS
 
select namespace (ALL,%SYS,DOCBOOK,ENSDEMO,ENSEMBLE,SAMPLES,USER) [USER]:
 
** Scan Namespace: USER **
 
** CLS **
** 2      User.ConLoad
** 15     User.Main
** 3      csp.form
** 3      csp.winner
** 2      dc.rcc.Contest
** 37     dc.rcc.Main
** 1      dc.rcc.Prize
** 63 CLS **
----------------

 

J'espère que vous avez apprécié mon histoire.
J'ai essayé d'éviter les séquences de code ennuyeuses. Il y a OpenExchange et Github pour cela.

Et s'il vous plaît, excusez mon français rouillé.
Je l'ai appris à l'école il y a 65 ans et il n'y était pas question de technologie
mais de Molière, Sartre, Queffélec, Anouilh, Ionesco, ... 

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer