Je dois lancer le script une fois compilé. Cela m'a donc obligé à inventer un compteur de ligne afin de reporter le numéro de ligne de l'erreur fatale Autoit à la ligne réelle sur : SciTE-Lite. Je sais qu'il existe déjà des propositions mais trop complexe pour moi,
-- INSTALLATION --
1/ Vous copiez la fonction TELS QUELLE, APRES les #include de votre script,
2/ Vous notez le numéro de ligne erreur lors de la première execution du programme à : $Script_LigneNumber_LigneManuelle = 34841 ; ici par exemple l'erreur est à la ligne 34841
Voilà c'est prêt
-- FONCTIONNEMENT --
1/ Lorsque l'erreur fatal apparait retenez le numéro de ligne d'erreur puis cliquez sur ok,
2/ une fenêtre de type inputbox apparait, reportez y le numéro de la ligne erreur.
3/ Vous obtenez le numéro de la ligne de compatible avec SciTE-Lite
Code : Tout sélectionner
Script_LigneNumber()
Func Script_LigneNumber($Script_LigneNumber1 = True)
; -------------------------------------------
; - Description :
; Permet de calculer le numéro de ligne de SciTE-Lite
; - Variables :
; $Script_LigneNumber1 = Paramètrage
; - Retourne :
; NC
; -------------------------------------------
$LigneNumber_Chemin = @ScriptFullPath ; Ou remplacer par le chemin du fichier .au3 original
$Script_LigneNumber_LigneManuelle = ; indiquer ici le numéro de ligne erreur indiqué par l'erreur lors du premier lancement de l'exe
If IsDeclared("Script_LigneNumber1") Then
If $Script_LigneNumber_LigneManuelle = "" Then Noter la ligne d erreur : Script_LigneNumber_LigneManuelle ; déclanche erreur
OnAutoItExitRegister("Script_LigneNumber")
Return ""
EndIf
If @exitCode = 0 Then Return ""
$Script_LigneNumber_Indique = InputBox("Numéro de ligne", "Indiquer le numéro de la ligne d'erreur")
If $Script_LigneNumber_Indique = "" Then Return ""
$LigneNumber_Chemin = StringReplace($LigneNumber_Chemin, ".exe", ".au3")
If Not FileExists($LigneNumber_Chemin) Then Return ""
$LigneNumber_Script = FileRead($LigneNumber_Chemin)
$LigneNumber_Script = StringSplit($LigneNumber_Script, @CRLF, 1)
$LigneNumber_ScriptString = ""
$LigneNumber_Ligne = ""
For $i = 1 To $LigneNumber_Script[0]
$LigneNumber_ScriptString = $LigneNumber_Script[$i]
$LigneNumber_ScriptString = StringReplace($LigneNumber_ScriptString, " ", "")
$LigneNumber_ScriptString = StringReplace($LigneNumber_ScriptString, @TAB, "")
If StringInStr($LigneNumber_ScriptString, "$Script_LigneNumber_LigneManuelle=") = 1 Then $LigneNumber_Ligne = StringReplace($LigneNumber_ScriptString, "$Script_LigneNumber_LigneManuelle=", "")
If Not $LigneNumber_Ligne Then ContinueLoop
If $LigneNumber_ScriptString = "" Then ContinueLoop
If StringLeft($LigneNumber_ScriptString, 1) = ";" Then ContinueLoop
If StringRight($LigneNumber_Script[$i], 2) = " _" Then ContinueLoop
If $LigneNumber_Ligne >= $Script_LigneNumber_Indique Then ExitLoop
$LigneNumber_Ligne += 1
Next
MsgBox(0, "Numéro de ligne de l'erreur", "Erreur du script ligne : >> " & $i & " <<" & @CRLF & @CRLF & "(Compilée : " & $Script_LigneNumber_Indique & ")" & @CRLF & @CRLF & "Chemin : " & $LigneNumber_Chemin)
Return ""
EndFunc


