Ok, Merci G-Rom.
Voici un exemple pour demander à PB de compiler un code en faisant appel à sont compilateur:
Premier fichier, c'est le fichier principal, nommez-le par exemple Main.pb, c'est le code que vous devez lancer.
Code : Tout sélectionner
Enumeration
#Fenetre
#EditeurExpression
#BoutonVerifier
#EditeurResultat
#EditeurMessageErreur
EndEnumeration
Global ErreurCompilation = 0
Global ErreurCode = 0
Global MessageErreur$ = ""
Global Sortie$ = ""
Procedure AppelCompilateur()
Compilateur = RunProgram(#PB_Compiler_Home + "/Compilers/pbcompiler", "Compilation.pb", "", #PB_Program_Open | #PB_Program_Read)
Sortie$ = ""
MessageErreur$ = ""
If Compilateur
While ProgramRunning(Compilateur)
If AvailableProgramOutput(Compilateur)
Tmp$ = ReadProgramString(Compilateur)
If FindString(Tmp$, "Line")
MessageErreur$ = Tmp$ + Chr(13)
EndIf
EndIf
Wend
ErreurCompilation = ProgramExitCode(Compilateur)
CloseProgram(Compilateur) ; Ferme la connection vers le programme
EndIf
Delay(200)
If ReadFile(1, "Log Compilation.txt")
MessageErreur$ + ReadString(1)
CloseFile(1)
EndIf
EndProcedure
OpenWindow(#Fenetre, 0, 0, 800, 700, "Exemple test Code", #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
TextGadget(#PB_Any, 20, 5, WindowWidth(#Fenetre) - 40, 20, "Entrez votre code ici:", #PB_Text_Center)
EditorGadget(#EditeurExpression, 20, 25, WindowWidth(#Fenetre) - 40, 400)
SetGadgetText(#EditeurExpression, "A = 15 * 89" + Chr(13) + "B$ = " + Chr(34) + "45" + Chr(34) + Chr(13) + "C = A + Val(B$)")
TextGadget(#PB_Any, 20, 428, WindowWidth(#Fenetre) - 40, 20, "Résultat de la compilation:", #PB_Text_Center)
EditorGadget(#EditeurResultat, 20, 448, WindowWidth(#Fenetre) - 40, 90, #PB_Editor_ReadOnly)
TextGadget(#PB_Any, 20, 542, WindowWidth(#Fenetre) - 40, 20, "Méssage d'érreur de compilation:", #PB_Text_Center)
EditorGadget(#EditeurMessageErreur, 20, 562, WindowWidth(#Fenetre) - 40, 90, #PB_Editor_ReadOnly)
ButtonGadget(#BoutonVerifier, (WindowWidth(#Fenetre) / 2) - 50, 660, 100, 30, "Vérifier")
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case #BoutonVerifier
CreateFile(1, "Code Source.pb")
WriteString(1, GetGadgetText(#EditeurExpression))
CloseFile(1)
AppelCompilateur()
ClearGadgetItems(#EditeurResultat)
ClearGadgetItems(#EditeurMessageErreur)
SetGadgetText(#EditeurResultat, Str(ErreurCompilation))
SetGadgetText(#EditeurMessageErreur, MessageErreur$)
DeleteFile("Log Compilation.txt")
DeleteFile("Code Source.pb")
DeleteFile("PureBasic.exe")
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
Deuxième fichier nommez-le
impérativement Compilation.pb
Code : Tout sélectionner
Procedure ErrorHandler()
CreateFile(1, "Log Compilation.txt")
WriteString(1, ErrorMessage())
CloseFile(1)
End
EndProcedure
OnErrorCall(@ErrorHandler())
IncludeFile "Code Source.pb"
CreateFile(1, "Log Compilation.txt")
WriteString(1, "Pas d'erreur ")
CloseFile(1)
ça fera un exemple de base si jamais quelqu'un veut savoir comment faire.
Voilà ce que je voulais faire, tester un code pour voir s'il est bon ou pas
ce n'est qu'une ébauche, mais c'est fonctionnel
PB va compiler le code 'Compilation.pb' en y incluant le code source de l'éditeur puis afficher les résultat dans les deux éditeur.