Le principe :
Lire le fichier C:\Program Files (x86)\AutoIt3\SciTE\Properties\au3.properties
Rajouter une section "command" juste après la dernière section "command" disponible.
Actuellement, mon code fonctionne, mais je passe par la conversion du fichier en tableau, puis par la lecture ligne par ligne pour trouver l'endroit ou je dois rajouter ma section.
Bien que cette méthode soit fonctionnelle, j'aimerais l'améliorer en utilisant les expressions régulières et comme je ne suis pas expert en la matière, je demande un petit coup de main. ^^
La requête :
Utiliser une (ou deux) expressions régulières pour découper le contenu du fichier en 2 parties.
La première partie va du début du fichier, jusqu'à la dernière ligne de la dernière section.
La deuxième partie doit contenir le reste du fichier.
Les éléments et contraintes :
- Bien que celui-ci n'est pas sensé être modifié, je ne souhaite pas me baser sur le texte de la première ligne (# SciTE settings for AutoIt v3) et démarrer la capture à partir du début du texte.
- Je ne souhaite pas me baser sur les lignes descriptives des sections (# xx description de la section).
- Je ne souhaite pas prendre en considération les éventuelles lignes qui pourraient être en commentaires (tel que #command.subsystem.xx.$(au3)=1).
- Je connais le numéro de la dernière section existante.
Je souhaiterais donc a partir du contenu du fichier "au3.properties" et en utilisant une (ou deux) expressions régulière mettre dans une variable, tout ce qu'il y a entre le début du texte, jusqu'à la dernière ligne de la forme "command.xx" ou "command.*.xx" sachant que xx est un nombre connu et que entre "command." et "xx" il peux y avoir (ou pas) un certain nombre de caractères.
Et dans la seconde variable le reste du texte.
Voici un extrait du fichier "au3.properties" qui montre comment sont formées certines sections "command" :
Code : Tout sélectionner
# 12 lookfar's Koda FormDesigner
command.12.$(au3)="$(SciteDefaultHome)\Koda\FD.exe" /Scite
command.subsystem.12.$(au3)=1
command.name.12.$(au3)=Koda(FormDesigner)
command.shortcut.12.$(au3)=Alt+m
command.save.before.12.$(au3)=2
command.replace.selection.12.$(au3)=1
command.quiet.12.$(au3)=1
# 14 Jos's SciTeConfig
command.14.$(au3)="$(SciteDefaultHome)\..\AutoIt3.exe" "$(SciteDefaultHome)\SciteConfig\SciteConfig.au3"
command.name.14.$(au3)=SciTe Config
command.shortcut.14.$(au3)=Ctrl+1
command.subsystem.14.$(au3)=2
command.save.before.14.$(au3)=2
command.replace.selection.14.$(au3)=0
command.quiet.14.$(au3)=1
# 15 Update Source in Version repository
command.15.*="$(SciteDefaultHome)\..\AutoIt3.exe" "$(SciteDefaultHome)\AutoIt3Wrapper\AutoIt3Wrapper.au3" /in "$(FilePath)" /Versioning_Commit
command.name.15.*=Version Update Source
command.save.before.15.*=1
command.shortcut.15.*=F12
# 18 Jump to Func quickly
command.name.18.$(au3)=Jump to Function Prod
command.mode.18.$(au3)=subsystem:lua,savebefore:yes
command.shortcut.18.$(au3)=Ctrl+J
command.18.$(au3)=InvokeTool AutoItGotoDefinition.GotoDefinition