Comment demander a pb de compiler un fichier source EXTERNE.

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Comment demander a pb de compiler un fichier source EXTERNE.

Message 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.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

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

Message 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.
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

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

Message 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.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre