Voici le code du Pluggin :
Code : Tout sélectionner
Procedure Erreur(Text.s)
MessageRequester("Erreur",Text,#MB_ICONERROR)
End
EndProcedure
#FichierInc="PbSnippet.pbi"
PParametre.s=ProgramParameter(0)
If PParametre="" Or UCase(Left(PParametre,8))="TEMPFILE"
Erreur("Aucun fichier spécifié")
EndIf
;/ Vérifie que le chemin est valide
Path.s=GetPathPart(PParametre)
If FileSize(Path)<>-2
Erreur("Chemin invalide")
EndIf
;/ Vérifie que le fichier spécifié n'est pas vide
FichierPB.s=PParametre
If FileSize(FichierPB)<1
Erreur("Fichier vide")
EndIf
;/ Test si le fichier source inclus déjà le fichier pbi
Fid=ReadFile(#PB_Any,FichierPB)
flag=1
While Eof(Fid)=0
Ligne.s=ReadString(Fid,#PB_Ascii) ; lit une ligne
Ligne=UCase(Ligne) ; la mete en majuscule
Ligne=ReplaceString(Ligne," ","") ; supprime tous les espaces
LigneRecherchee.s="INCLUDEFILE"+Chr(34)+UCase(#FichierInc)+Chr(34)
If Left(Ligne,Len(LigneRecherchee))=LigneRecherchee
flag=0
EndIf
Wend
;/ Insère la commande include si non incluse
If flag
Beep_(750,300)
Taille=FileSize(FichierPB)
*Ptr=AllocateMemory(Taille)
Fid=ReadFile(#PB_Any,FichierPB)
ReadData(Fid,*Ptr,Taille)
CloseFile(Fid)
; écrit le fichier avec la commande include en premier
Fid=CreateFile(#PB_Any,FichierPB)
WriteStringN(Fid,"IncludeFile "+Chr(34)+#FichierInc+Chr(34))
WriteData(Fid,*Ptr,Taille)
CloseFile(Fid)
FreeMemory(*Ptr)
EndIf
Si quelqu'un a une idée
