Page 2 sur 2

Re: [..] Plugin scite automodification

Posté : ven. 27 mai 2011 11:51
par ricky
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?

Re: [..] Plugin scite automodification

Posté : ven. 27 mai 2011 13:17
par Iste
Et bien meme si je comprend pas trop dans quel cas cela peut arriver, il suffit de remplacer le

Code : Tout sélectionner

StringReplace($lines[$i], $VALUE, $i)
par un StringRegExpReplace()

Re: [..] Plugin scite automodification

Posté : ven. 27 mai 2011 14:52
par ricky
Voilà mon code qui marche nickel, merci Iste pour ton 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.")

EndFunc
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.