Produit : 4D 2004 · Plateforme : Mac
Exemple de problématique demandée :
Vous avez plusieurs fichiers texte comportant des numéros écrits dans le format >0123456789<.
Vous voulez effectuer une recherche globale dans tous ces fichiers pour retourner le premier numéro comportant 7 chiffres.
Vous utilisez la ligne de commande Unix suivante qui comporte trois actions :
/bin/cat tmp/4D_001 tmp/4D_002 tmp/4D_003 |
/usr/bin/ruby -ne '$_=~/>([0-9]{7})</; next unless $1; print $1; exit'
|
/usr/bin/pbcopy
- Action 1 : cat concatène les fichiers 4D_001, 4D_002, 4D_003
- Action 2 : ruby (et son script) cherche et retourne le premier nombre de 7 chiffres de 0 à 9
- Action 3 : pbcopy copie le résultat dans le presse-papiers
Pour effectuer la même manœuvre avec la commande 4D LANCER PROCESS EXTERNE :
https://4d.developpez.com/documentation/4DDoc2004/CMF/CMF00811.HTM
C_TEXTE
(
lpe_in;
lpe_out;
lpe_erreur;
lpe_commande)
`cat tmp/4D_001 tmp/4D_002 tmp/4D_003 : concatène les fichiers 4D_001, 4D_002, 4D_003
$commande_1
:=
"cat Users/stirtiat/tmp/4D_001 Users/stirtiat/tmp/4D_002 Users/stirtiat/tmp/4D_003"
`script ruby : cherche et retourne le premier nombre de 7 chiffres de 0 à 9
$commande_2
:=
"/usr/bin/ruby -ne '$_=~/>([0-9]{7})</; next unless $1; print $1; exit'"
`pbcopy : copie le résultat dans le presse-papiers
$commande_3
:=
"/usr/bin/pbcopy"
`$commande_1 concatène les données des 3 fichiers
`le résultat est retourné dans lpe_out
LANCER PROCESS EXTERNE
(
$commande_1
;
lpe_in;
lpe_out;
lpe_erreur)
`lpe_out devient le paramètre d'entrée pour $commande_2
`puisqu'on cherche dans les données concaténées
lpe_in:=
lpe_out
LANCER PROCESS EXTERNE
(
$commande_2
;
lpe_in;
lpe_out;
lpe_erreur)
`lpe_out contient maintenant le numéro à 7 chiffres trouvé
`et devient le paramètre d'entrée de $commande_3 qu'on va afficher dans le presse-papier
lpe_in:=
lpe_out
LANCER PROCESS EXTERNE
(
$commande_3
;
lpe_in;
lpe_out;
lpe_erreur)
`affiche le presse-papier
ALERTE
(
Lire texte dans presse papiers)
C_TEXTE
(
lpe_in;
lpe_out;
lpe_erreur;
lpe_commande)
$commande_1
:=
"cat Users/stirtiat/tmp/4D_001 Users/stirtiat/tmp/4D_002 Users/stirtiat/tmp/4D_003"
$commande_2
:=
"/usr/bin/ruby -ne '$_=~/>([0-9]{7})</; next unless $1; print $1; exit'"
$commande_3
:=
"/usr/bin/pbcopy"
LANCER PROCESS EXTERNE
(
$commande_1
;
lpe_in;
lpe_out;
lpe_erreur)
LANCER PROCESS EXTERNE
(
$commande_2
;
lpe_out;
lpe_out;
lpe_erreur)
LANCER PROCESS EXTERNE
(
$commande_3
;
lpe_out;
lpe_out;
lpe_erreur)
ALERTE
(
Lire texte dans presse papiers)