HomeProductsDownloadOrderSupportSearch
  
Myriad Forum « Tirets dans un gsub »
 Welcome, Guest.
 You can read all messages, but to be able to post,
 please Login or Register.
Mar 28th, 2024, 6:30pm 
   Myriad Forum
   MyrScript Language
(Moderator: Forum Administrator)
   Tirets dans un gsub
« Previous topic | Next topic »
Pages: 1 2  Reply | Notify of replies | Print
   Author  Topic: Tirets dans un gsub  (Read 3865 times)
ANdre_B
Board Master
*****





   
Email

Gender: male
Posts: 2847
Tirets dans un gsub  
« on: Jan 16th, 2018, 4:14pm »
Quote | Modify

Dans mon développement en cours, j'utilise centralement la fonction "gsub".  
 
Le plus souvent, cela marche bien, mais j'ai des problèmes lorsqu'il y a un tiret dans le "pattern".
Pas de problème si le tiret est seul dans le pattern, mais dès que cette zone comprend un tiret et d'autres caractères, la substitution ne se fait pas.  
 
Je veux modifier en masse des lignes de paroles, et les tirets y sont monnaie courante (et essentiels!)  
 
Quelqu'un a-t-il déjà rencontré ce problème? Y a-t-il une solution?  
J'ai lu attentivement le manuel aux pages appropriées (93 à 95) et n'y ai rien vu concernant le tiret; mais les 90% du paragraphe traite de l'utilisation de variables, cet arbre pourrait cacher la forêt.  
 
Merci d'avance.    
« Last Edit: Jan 16th, 2018, 4:14pm by ANdre_B » offline

André Baeck, de retour en Belgique après 12 ans passés dans le Gard.
Windows 11, HA 997e (et précédents)
bubu42
Board Master
*****





   


Gender: male
Posts: 10508
Re: Tirets dans un gsub  
« Reply #1 on: Jan 16th, 2018, 6:29pm »
Quote | Modify

Je n'ai pas de pagination, mais il me semble que la réponse doit se trouver quelque part après la ligne 5437 du manuel (The Lua Language>Standard Librairies>String Manipulation) Il doit bien y avoir un caractère d'échappement qui permette de traiter ce cas de figure.
<Edit>Je viens de me souvenir que j'avais proposé une traduction française du manuel concernant Lua...  D'autre part, la numérotation des lignes varie -bien sûr- en fonction de la grandeur de la fenêtre ! Voir dans Manuel Français>Le langage Lua>le langage>Bibliothèques standard>Manipulation de chaîne (que j'aurais d'ailleurs mieux fait de mettre au pluriel...)</Edit>
« Last Edit: Jan 16th, 2018, 6:36pm by bubu42 » offline

Harmony Assistant - Ubuntu + Wine et Windows XP sur machine virtuelle. VS, OMeR, PDF2M
ANdre_B
Board Master
*****





   
Email

Gender: male
Posts: 2847
CeRe: Tirets dans un gsub  
« Reply #2 on: Jan 17th, 2018, 11:03am »
Quote | Modify

Merci, Bubu
 
Cette section (en anglais) est bien celle que j'utilise comme référence, et j'ai trouvé celle en français qui est identique qant au contenu.
 
Il y a différentes "séquences d'échappement", mais aucune autour d'un traitement spécial du tiret.  
 
J'ai une circonvolution (bypass) qui consiste à transformer partout les tirets en un caractère inutilisé, et inversément à la fin. Mais c'est pas joli, simplement cela me permet d'avancer.    
offline

André Baeck, de retour en Belgique après 12 ans passés dans le Gard.
Windows 11, HA 997e (et précédents)
bubu42
Board Master
*****





   


Gender: male
Posts: 10508
Re: CeRe: Tirets dans un gsub  
« Reply #3 on: Jan 17th, 2018, 1:31pm »
Quote | Modify

on Jan 17th, 2018, 11:03am, Andre_B wrote:
J'ai une circonvolution (bypass) qui consiste à transformer partout les tirets en un caractère inutilisé, et inversément à la fin.
C'est ce que j'allais proposer dans un premier temps.  
Maintenant, il reste à comprendre pourquoi Lua est dérouté par ces tirets. Peut-être faudrait-il ajouter un test sur leur nombre dans la chaîne avant le traitement, mais ça complique pas mal les choses et si on inclut les essais, c'est assez vite gourmand en temps (à moins d'avoir la chance/l'intelligence de trouver tout de suite la bonne routine, ce qui est rarement mon cas)
offline

Harmony Assistant - Ubuntu + Wine et Windows XP sur machine virtuelle. VS, OMeR, PDF2M
Geo
Board Master
*****





   


Gender: male
Posts: 2488
Re: Tirets dans un gsub  
« Reply #4 on: Jan 17th, 2018, 3:56pm »
Quote | Modify

Bonjour
 
Le tiret, en fait le moins est un caractère magique.
Vous avez sans doute essayé de remplacer chaque - par %- ?
offline
Michel VIGNERON
Board Junior Member
**





   
Email

Gender: male
Posts: 61
Re: Tirets dans un gsub  
« Reply #5 on: Jan 17th, 2018, 6:07pm »
Quote | Modify

Bonjour,
 
borner les caractères générique entre crochets : [-]
 
Cela devrait passer.
offline
Michel VIGNERON
Board Junior Member
**





   
Email

Gender: male
Posts: 61
Re: Tirets dans un gsub   gsub.PNG
« Reply #6 on: Jan 17th, 2018, 6:23pm »
Quote | Modify

Je confirme mon post précédent
offline

ANdre_B
Board Master
*****





   
Email

Gender: male
Posts: 2847
Re: Tirets dans un gsub  
« Reply #7 on: Jan 17th, 2018, 7:16pm »
Quote | Modify

En effet, Michel.  
 
En effet, Geo..  
 
 
J'ajouterai que gsub traite bien le tiret (ou le moins) s'il est en première position, et pas seulement s'il est seul.  
 
Les crochets, ça ne m'arrange pas trop, car je dois m'attendre à des zones entre crochets dans les paroles (sampa ou autres). Même si ça peut être faisable, ça rendra certains aspects plus compliqués (et illisibles).  
 
Le % me semble mieux gérable. Je vais voir à inclure cela dans l'ensemble.  
 
Merci à tous les deux.
offline

André Baeck, de retour en Belgique après 12 ans passés dans le Gard.
Windows 11, HA 997e (et précédents)
Michel VIGNERON
Board Junior Member
**





   
Email

Gender: male
Posts: 61
Re: Tirets dans un gsub  
« Reply #8 on: Jan 17th, 2018, 7:27pm »
Quote | Modify

Toujours les même problèmes de caractères magiques :
\ force à interpréter le caractère suivant, mais dans les scripts ça ne fonctionne pas toujours. On peut arriver à la situation suivante : \\\[ (je force l'interprétation de \ pour interpréter \[.
Dans les substitutions de ce genre, mieux vaut utiliser les simples quotes que les doubles dans les patterns.
Je ne garanti pas le résultat.
offline
Michel VIGNERON
Board Junior Member
**





   
Email

Gender: male
Posts: 61
Re: Tirets dans un gsub   gsub2.PNG
« Reply #9 on: Jan 17th, 2018, 7:47pm »
Quote | Modify

Après quelques test on peut avoir cela (sans changer les double-quotes par des simples ni utiliser le back-slash :
offline

Geo
Board Master
*****





   


Gender: male
Posts: 2488
Re: Tirets dans un gsub  
« Reply #10 on: Jan 17th, 2018, 8:28pm »
Quote | Modify

Quote:
J'ajouterai que gsub traite bien le tiret (ou le moins) s'il est en première position, et pas seulement s'il est seul.

Oui car il donne des indications pour la chaine de caractères qui le précède. quand il commence il n'a rien de particulier à faire et se contente d'être lui-même. Je vais essayer de retrouver son rôle exact.  
 
Ajout : trouvé ici :
https://www.lua.org/manual/5.3/manual.html#6.4.1
 
"a single character class followed by '-', which also matches zero or more repetitions of characters in the class. Unlike '*', these repetition items will always match the shortest possible sequence; "
je n'ai pas tout compris !
« Last Edit: Jan 17th, 2018, 9:19pm by Geo » offline
PaulL
Board Master
*****




Retired organist and choir director; former progra

   


Gender: male
Posts: 1130
Re: Tirets dans un gsub  
« Reply #11 on: Jan 18th, 2018, 1:00am »
Quote | Modify

on Jan 17th, 2018, 8:28pm, Geo wrote:

Ajout : trouvé ici :
https://www.lua.org/manual/5.3/manual.html#6.4.1
 
"a single character class followed by '-', which also matches zero or more repetitions of characters in the class. Unlike '*', these repetition items will always match the shortest possible sequence; "
je n'ai pas tout compris !

 
Je parle anglais, et je ne comprends pas ça non plus!  
offline

Le coeur a ses raisons, que la Raison ne connaît point.
Paul Littlefield, retired Church musician

HA+VS+PdfToMusic Linux Mint 21.3 Cinnamon
ANdre_B
Board Master
*****





   
Email

Gender: male
Posts: 2847
Re: Tirets dans un gsub  
« Reply #12 on: Jan 18th, 2018, 8:02am »
Quote | Modify

Eh bien, moi non plus. Et j'ai souvent du débrouiller des explications techniques en anglais. Peut-être qu'en lisant tout le chapitre...  
 
Mais pour le moment, cela me suffit de savoir qu'un tiret qui n'est pas en tête a une signification spéciale, ce n'est pas "bug" mais "bad" (broken as designed).  
 
Une petite mention "caveat" dans le manuel MyrScript serait bienvenue.  
 
 
Je crois que je vais ajouter des % devant tous les - du pattern; cela restera lisible.  
 
Merci à tous.
offline

André Baeck, de retour en Belgique après 12 ans passés dans le Gard.
Windows 11, HA 997e (et précédents)
PaulL
Board Master
*****




Retired organist and choir director; former progra

   


Gender: male
Posts: 1130
Re: Tirets dans un gsub  
« Reply #13 on: Jan 18th, 2018, 2:25pm »
Quote | Modify

on Jan 18th, 2018, 8:02am, Andre_B wrote:

. . . ce n'est pas "bug" mais "bad" (broken as designed). . . .

 
 
Ou, comme nous disions dans mes jours comme programmeur, "It's not a bug, it's a feature!"  
« Last Edit: Jan 18th, 2018, 2:26pm by PaulL » offline

Le coeur a ses raisons, que la Raison ne connaît point.
Paul Littlefield, retired Church musician

HA+VS+PdfToMusic Linux Mint 21.3 Cinnamon
bubu42
Board Master
*****





   


Gender: male
Posts: 10508
Re: Tirets dans un gsub  
« Reply #14 on: Jan 19th, 2018, 11:39am »
Quote | Modify

Coïncidence... Sur un autre fil, il est fait implicitement mention des tirets dans les paroles, plus particulièrement sur ce lien. Il y a un script qui concerne la ligature de certaines notes, et en l'analysant on voit une manière de traiter ces fameux tirets. Si ça peut aider...
offline

Harmony Assistant - Ubuntu + Wine et Windows XP sur machine virtuelle. VS, OMeR, PDF2M
Pages: 1 2  Reply | Notify of replies | Print

« Previous topic | Next topic »

« Myriad Forum » Powered by YaBB 1 Gold - SP 1.1!
YaBB © 2000-2002,
Xnull. All Rights Reserved.

Top of page
Legal information Cookies Last update:  (c) Myriad