|
auteur : Comtois |
Le compilateur est très docile, si on lui demande gentiment il est capable de répondre à nos questions. On peut par exemple lui demander la liste des champs dans une structure donnée, ou lui demander la liste des fonctions qu'il connait, on obtient ainsi non seulement la liste des fonctions PureBasic mais aussi la liste des fonctions des bibliothèques tierces installées dans le répertoire PureBasic. Mais avant d'interroger le compilateur il faut le démarrer.
Pour cela on utilise tout simplement la commande RunProgram() avec les options suivantes :
- #PB_Program_Hide : Lance le programme en mode invisible.
- #PB_Program_Open : Ouvre des canaux de communication entre le programme lancé et le programme PureBasic.
- #PB_Program_Read : Lecture possible sur la sortie standard (stdout).
- #PB_Program_Write : Ecriture possible sur l'entrée standard (stdin).
Compilateur = RunProgram(# PB_Compiler_Home + " Compilers\Pbcompiler.exe " , " /STANDBY " , " " , # PB_Program_Open | # PB_Program_Read | # PB_Program_Write | # PB_Program_Hide )
If Compilateur = 0
MessageRequester(" Pas de bol " , " Le compilateur ne démarre pas " )
End
EndIf
Reponse$ = ReadProgramString(Compilateur)
|
/STANDBY (Windows) ou --standby (Linux/Mac) : Le compilateur attend une commande sur l'entrée standard (stdin) et répond sur la sortie standard (stdout)
|
|
auteur : Comtois |
Une fois que vous avez démarré le compilateur, vous devez vérifier qu'il est prêt à discuter avec vous.
Reponse$ = ReadProgramString(Compilateur)
If StringField(Reponse$, 1 , Chr(9 )) = " ERROR "
MessageRequester(" " , " Erreur: " + StringField(Reponse$, 2 , Chr(9 )))
CloseProgram(Compiler)
End
EndIf
|
|
|
auteur : Comtois |
Ok, le compilateur est démarré, il est prêt, alors posons lui une question. Certaines questions ont un paramètre, d'autres non.
Exemple de requête sans paramètre, en réponse Le compilateur renvoie la liste de toutes les structures :
Demande$= " STRUCTURELIST "
Parametre$= " "
WriteProgramStringN(Compilateur, Demande$+ Chr(9 )+ Parametre$)
|
Autre exemple de requête avec un paramètre, le compilateur renvoie la liste des champs de la structure indiquée en paramètre :
Demande$= " STRUCTURE "
Parametre$= " point "
WriteProgramStringN(Compilateur, Demande$+ Chr(9 )+ Parametre$)
|
Pour connaître la liste des requêtes possibles consultez le fichier CompilerInterface.txt qui se trouve dans le répertoire sdk de PureBasic.
|
|
auteur : Comtois |
Il suffit de créer une boucle qui récupère les réponses jusqu'à l'information 'OUTPUT [TAB] COMPLETE'
Repeat
Reponse$ = ReadProgramString(Compilateur)
If Reponse$ = " OUTPUT " + Chr(9 )+ " COMPLETE "
Break
EndIf
Texte$ + Reponse$ + Chr(13 )
ForEver
|
Ensuite il faut terminer l'échange en envoyant la requête 'END'
WriteProgramStringN(Compilateur, " END " )
CloseProgram(Compilateur)
|
Et on peut enfin afficher le résultat
MessageRequester(" " , Texte$)
|
|
Consultez les autres F.A.Q's
Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur.
Copyright © 2008 Developpez Developpez LLC.
Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne
peut être faite de ce site ni de l'ensemble de son contenu : textes, documents
et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez
selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.