#1 Tue 24 April 2018 15:23
- remidici
- Participant occasionnel
- Date d'inscription: 4 Apr 2017
- Messages: 30
QGIS: caractere d'echappement dans action
Bonjour,
je viens faire appel à l'expertise de certains pour une petite galère:
Je crée un projet sous qgis qui doit rassembler toutes les lignes de bus d'un département.
L'action que je crée est la suivante:
sur un clic gauche fait sur une ligne de bus, je souhaite que la fiche PDF des horaires de trajets s'ouvre.
Pas de problème dans le cas ou le fichier PDF contient une partie fixe et une deuxième qui comprend le numero de la ligne. J'utilise donc le champ attributaire "ligne" pour composer le texte de définition de l'action comme ceci:
"S:\...\Brochures_Horaires\MOBIBUS-[% "ligne" %].PDF"
Ici, mes lignes "MOBIBUS" ont une fiche pdf correspondante toujours nommée de la façon: MOBIBUS-216.pdf
Mon problème: certains pdf qui correspondent à d'autres lignes ont une chaine de caractères supplémentaires à la fin.
Exemple: MOBIBUS-216_villeA_villeB.pdf
J'ai donc essayé d'insérer divers caractères à la fin de ce texte mais je ne dois pas avoir les bons mots clés car je n'ai pas trouvé ma solution sur le/les forums.
Exemples essayés:
Code:
"S:\...\Brochures_Horaires\MOBIBUS-[% "ligne" %]*.PDF" ou "S:\.........%]'\'.pdf ou "S:\.........%]'\\'.pdf ou "S:\.........%]'/'.pdf etc.... j'ai même essayé ça: "S:\.........%](.)*.pdf
m'enfin; rien ne fonctionne.......
y aurait il une âme charitable qui sache où se trouve mon erreur ?
merci d'avance.
Dernière modification par remidici (Tue 24 April 2018 21:02)
Hors ligne
#2 Wed 25 April 2018 09:14
- tevrard
- Participant assidu
- Date d'inscription: 23 May 2016
- Messages: 320
Re: QGIS: caractere d'echappement dans action
Pour l'échappement il faut doubler le caractère et je serais parti sur une concaténation pour former ton chemin :
Code:
'S:\\...\\Brochures_Horaires\\MOBIBUS-' || [% "ligne" %] || '.pdf'
Pour un fichier classique, pour les plus complexes, il faut probablement utiliser une condition mais je ne préfère pas m'avancer sur ce sujet
Hors ligne
#3 Wed 25 April 2018 10:05
- remidici
- Participant occasionnel
- Date d'inscription: 4 Apr 2017
- Messages: 30
Re: QGIS: caractere d'echappement dans action
Pour l'échappement il faut doubler le caractère
euhhh oui mais lequel ?
je viens d'essayer :
Code:
'S:\\...\\Brochures_Horaires\\MOBIBUS-'||[% "ligne" %]||'**.pdf' 'S:\\...\\Brochures_Horaires\\MOBIBUS-' || [% "ligne" %] || '\\.pdf' 'S:\\...\\Brochures_Horaires\\MOBIBUS-' || [% "ligne" %] || '//.pdf' 'S:\\...\\Brochures_Horaires\\MOBIBUS-' || [% "ligne" %] || ''**'.pdf' 'S:\\...\\Brochures_Horaires\\MOBIBUS-' || [% "ligne" %] || ''//'.pdf' 'S:\\...\\Brochures_Horaires\\MOBIBUS-' || [% "ligne" %] || ''\\'.pdf'
mais ça fonctionne pas.....
en attendant : MERCI quand même ;-)
Hors ligne
#4 Fri 11 May 2018 10:13
Re: QGIS: caractere d'echappement dans action
Bonjour,
A mon avis, on ne peut utiliser une expression régulière dans votre action.
Il faudrait selon moi créer une action python qui itère sur les numéros de 1 à ...
ou sur des caractères de A à ...
et ouvre tous les pdfs (ou le pdf) qu'il faut
Exemple de code python ouvrant une série de fichiers :
Code:
import os for i in range(1,100) : fichierAvecNumero = 'mondossier/monfichierpdf%s.pdf'%(i) if os.path.isfile(fichierAvecNumero) : os.startfile(fichierAvecNumero) for i in range(97,123) : fichierAvecCaractere = 'mondossier/monfichierpdf%s.pdf'%(chr(i)) if os.path.isfile(fichierAvecCaractere) : os.startfile(fichierAvecCaractere)
geodata au cerema et petits billets en géomatique
Hors ligne