[..] Plugin scite automodification
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Plugin scite automodification
Et pour continuer d'utiliser toujours le même, il ne serait pas possible que le script cherche tous les blocs %nimporte_quoi% et remplace dedans par le bon numéro de ligne?
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Plugin scite automodification
Et bien meme si je comprend pas trop dans quel cas cela peut arriver, il suffit de remplacer le par un StringRegExpReplace()
Code : Tout sélectionner
StringReplace($lines[$i], $VALUE, $i)Signez ici
- ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Plugin scite automodification
Voilà mon code qui marche nickel, merci Iste pour ton aide.
Ce code remplace tous les valeurs se trouvant entre $StringStart et $StringEnd.
Donc que ça soit la première fois ou la 5ème fois le numéro de la ligne sera updaté. Pas besoin de le réécrire dans un autre fichier avec un autre nom.
Maintenant, qui pourrait m'aider pour l'intégrer dans scite, le but est de lancer ce programme, en paramètre on peut y rentrer le nom du fichier (A y implémenter plus tard) et celui-ci la modifier le fichier original et ses includes.
Merci d'avance pour votre aide.
Code : Tout sélectionner
#Include <File.au3>
#include <String.au3>
$StringStart = '"%'
$StringEnd = '%"'
$file = FileOpenDialog("open", "C:\", "Script (*.au3)")
preCompil($file)
Func preCompil(Const $file)
;~ Lire toutes les lignes du fichier
Local $lines
_FileReadToArray($file, $lines)
$NbLines = 0
;~ Boucle For de remplacement
For $i = 1 To $lines[0]
; recherche du contenu entre le Start et le end
$arrayString = _StringBetween($lines[$i], $StringStart, $StringEnd)
; s'il ne trouve rien ou que le numéro de ligne est déjà le même il ne change rien
if not @error and $arrayString[0] <> $i then
$VALUE = $StringStart & $arrayString[0] & $StringEnd
; Remplace l'ancienne valeur par la nouvelle
$lines[$i] = StringReplace($lines[$i], $VALUE, $StringStart & $i & $StringEnd)
$NbLines += 1
EndIf
Next
_FileWriteFromArray($file & "_compiled.au3", $lines, 1)
MsgBox(0,"Precompil End", $NbLines & " modified.")
EndFuncDonc que ça soit la première fois ou la 5ème fois le numéro de la ligne sera updaté. Pas besoin de le réécrire dans un autre fichier avec un autre nom.
Maintenant, qui pourrait m'aider pour l'intégrer dans scite, le but est de lancer ce programme, en paramètre on peut y rentrer le nom du fichier (A y implémenter plus tard) et celui-ci la modifier le fichier original et ses includes.
Merci d'avance pour votre aide.
