Page 1 sur 1

Comment demander a pb de compiler un fichier source EXTERNE.

Publié : lun. 28/sept./2015 15:27
par Micoute
Bonjour, je voudrait savoir comment je peux faire pour demander à PB de compiler
un code dans un fichier externe, dans un fichier texte par exemple.

Je dois surement lancer le compilateur avec RunProgram() ?
Puis de lui donner le code à compiler ?

Merci de votre aide.

Re: Comment demander a pb de compiler un fichier source EXTE

Publié : lun. 28/sept./2015 15:32
par G-Rom
Dans l'aide , rubrique "L'IDE PureBasic" chapitre : Commutateurs de la ligne de commande tu as tout sont dont tu as besoin.

Re: Comment demander a pb de compiler un fichier source EXTE

Publié : mar. 29/sept./2015 8:22
par Micoute
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.