Myriad Forum « Tirets dans un gsub »
 Welcome, Guest.
 You can read all messages, but to be able to post,
 please Login or Register.
Feb 22nd, 2018, 10:06pm 
   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 402 times)
Andre_B
Board Master
*****





   


Gender: male
Posts: 657
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, belge vivant dans le Gard
bubu42
Board Master
*****





   


Gender: male
Posts: 8746
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
Andre_B
Board Master
*****





   


Gender: male
Posts: 657
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, belge vivant dans le Gard
bubu42
Board Master
*****





   


Gender: male
Posts: 8746
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
Geo
Board Master
*****





   


Gender: male
Posts: 1814
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 Newbie
*





   
Email

Gender: male
Posts: 30
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 Newbie
*





   
Email

Gender: male
Posts: 30
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
*****





   


Gender: male
Posts: 657
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, belge vivant dans le Gard
Michel VIGNERON
Board Newbie
*





   
Email

Gender: male
Posts: 30
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 Newbie
*





   
Email

Gender: male
Posts: 30
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: 1814
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 Senior Member
****




Organist and choir director

   


Gender: male
Posts: 326
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 silence éternel des espaces infinis m'effraie.

Church musician
HA+VS+PdfToMusic Win XP
Andre_B
Board Master
*****





   


Gender: male
Posts: 657
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, belge vivant dans le Gard
PaulL
Board Senior Member
****




Organist and choir director

   


Gender: male
Posts: 326
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 silence éternel des espaces infinis m'effraie.

Church musician
HA+VS+PdfToMusic Win XP
bubu42
Board Master
*****





   


Gender: male
Posts: 8746
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
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 Last update:  (c) Myriad