LigneNumber une fois compilé (proposition de fonction)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
A2Energie
Niveau 5
Niveau 5
Messages : 144
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

LigneNumber une fois compilé (proposition de fonction)

#1

Message par A2Energie »

Bonjour amis Autoitiens, :D

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 :wink:

-- 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
Voila j'espère avoir pu aider, ou j'espère que mon explication n'est pas trop compliquée à comprendre.

:bisou:
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2113
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: LigneNumber une fois compilé (proposition de fonction)

#2

Message par TommyDDR »

Ne fonctionne malheureusement pas, (car il ne prend pas en compte les include entre autre)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Répondre