La création du fichier UDF
Un fichier UDF est un fichier AutoIt contenant la définition de fonctions non incluses dans le noyau AutoIt. Le package d’installation d’AutoIt contient déjà un certain nombre de fichiers UDF’s qui peuvent être utilisés en utilisant un système d’inclusion.
#include <File.au3>
$hFile = « Exemple.txt »
_FileReadToArray($hFile,$aRecords)
_ArrayDisplay($aRecords)
Pour la création de votre propre fichier UDF, il est demandé de respecter des normes. Vous pourrez les trouver ici :
http://www.autoitscript.com/autoit3/udf ... ndards.htm
Au final, le fichier devrait ressembler à quelque chose comme ceci :
#Region
#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#EndRegion
#include-Once
; #INDEX# ====================================
; Title ………: Ma Librairie
; AutoIt Version : 3.2.12
; Language ……: Francais
; Description …: Fonctions de traitement des fichiers
; ======================================================
; #CURRENT# =============================================
;_DeleteBlankLineInFile
; ====================================================
; #FUNCTION# ================================================
; Name ……….: _DeleteBlankLineInFile
; Description …: Efface les lignes vides dun fichier texte
; Syntax ……..: _DeleteBlankLineInFile($hFileName)
; Parameters ….: $hFileName – Fichier à modifier
; Return values .: Success – 1 Fichier retaillé
; Failure – 0, Macro @error mise a:
; |1 – $sFileName n existe pas
; |2 – Impossible d ouvrir le fichier en lecture
; |3 – Impossible d ouvrir le fichier en écriture
; |4 – Impossible d écrire dans le fichier
; Author ……..: Eric Chudyba
; Modified…….: Final
; Remarks …….:
; Related …….:
; Link ……….;
; Example …….; No
; ===============================================================
Func _DeleteBlankLineInFile($hFileName)
If Not FileExists($hFileName) Then Return SetError(1, 0, 0)
Local $iFile, $aRecords, $s_TotFile
; ====================================
; Mise en tableau du fichier texte
; ====================================
$iFile = FileOpen($hFileName, 0)
If $iFile = -1 Then Return SetError(2, 0, 0)
$s_TotFile = FileRead($iFile, FileGetSize($hFileName))
$aRecords = StringSplit(StringStripCR($s_TotFile), @LF)
FileClose($iFile)
; ====================================
; Réécriture du fichier texte
; ====================================
$iFile = FileOpen($hFileName, 2)
If $iFile = -1 Then Return SetError(3, 0, 0)
For $i = 1 To $aRecords[0] - 1
If Not StringIsSpace($aRecords[$i]) AND Not $aRecords[$i] = » Then
If FileWriteLine($iFile, $aRecords[$i]) = 0 Then
SetError(4)
FileClose($iFile)
Return 0
EndIf
EndIf
Next
Return 1
EndFunc
De façon à vérifier que votre UDF ne comporte pas d’erreur, il est conseillé de lancer une compilation de votre fichier en ajoutant les lignes
#Region
#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#EndRegion
Si vous obtenez des erreurs, corrigez-les. Sinon, votre fichier UDF est prêt à être intégré à SciTe.
L’intégration du fichier UDF à SciTe
Avant toute chose, la première action à effectuer est de placer votre fichier UDF dans le dossier « Include » d’AutoIt qui se trouve à cet endroit C:\Program Files\AutoIt3\Include
Affichage de l’info bulle
Pour ajouter les informations qui seront affichées dans l’info bulle, ouvrez le fichier contenant les définitions des fonctions en allant dans le menu Tools de SciTe et en ouvrantUser CallTip Entries.
(Dans l’explorateur, ce fichier est : C:\Program Files\AutoIt3\SciTe\api\au3.user.calltips.api)
Une fois ce fichier ouvert, ajoutez y la définition des fonctions de votre fichier UDF en suivant la syntaxe suivante
_NomFonction(parametre1,parametre2 [, parametreOptionnel1 ]) Commentaires de la fonction
Une fois ceci fait, vous pouvez fermer le fichier.
Si vous voulez tester le fonctionnement (sans avoir la coloration syntaxique que nous allons déclarer par la suite), vous pouvez fermer et rouvrir SciTe.
Si nous reprenons notre exemple, cela donnera quelque chose comme ceci
_DeleteBlankLineInFile( « file » ) Efface les lignes vides d’un fichier texte. Nécessite l’inclusion de _MyLib.au3 ( #include <_MyLib.au3> )
Vous pouvez déjà constater que la fonction est reconnue par SciTe et que l’auto-complétion fonctionne.
Voilà. L’info bulle affiche ce que vous avez déclaré auparavant. Vous pouvez constater que la coloration syntaxique n’est pas encore active et que l’on peut très bien utiliser ce mode de fonctionnement pour différencier les fonctions des fichiers UDF inclus dans le package d’installation d’AutoIt avec vos fonctions personnelles.
Ajout de la coloration syntaxique
Pour ajouter la coloration syntaxique aux fonctions contenues dans notre fichier UDF, il faut éditer le fichier au3.keywords.properties.
Vous pouvez ouvrir ce fichier en passant par le menu Options de SciTe et en cliquant sur Open au3.keywords.properties ou alors en passant par l’explorateur pour ouvrir le fichier se trouvant à l’emplacement C:\Program Files\AutoIt3\SciTe\Properties\au3.keywords.properties.
Une fois le fichier ouvert, placez vous à la fin de la section au3.keywords.udfs (Environ ligne 547), et ajoutez y le nom de vos fonctions.
/!\ ATTENTION : Vous devez impérativement tout écrire en minuscules !
N’oubliez pas non plus d’ajouter un antislash « \ » si vous passez à la ligne.
Vous devriez obtenir quelque chose comme ceci :
Vous pouvez à présent fermer ce fichier. Si nous faisons un test avec notre UDF nous obtenons
A partir de maintenant, vos fonctions seront documentées et la coloration syntaxique s’appliquera lorsque vous les appellerez