Editeur D'expression

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: Editeur D'expression

Message par Marc56 »

...la page était lue par le serveur, le code compilé et exécuté, et la sortie du programme était renvoyée dans la page, alors envoyée au client ...
Ça s'appelle l'interface CGI :mrgreen:

Utilisée depuis 24 ans, bien avant les modules pour serveur web. Souvent utilisée avec Perl, mais on peut interfacer n'importe quoi, même un vulgaire .BAT
PHP d'aileurs peut fonctionner aussi bien en module que par CGI (et même en ligne de commande pour faire des scripts locaux)

Tout programme capable de recevoir un fichier en entrée et de faire une sortie texte console (sans intervention utilisateur) peut-être interfacé avec un serveur www. Il faut juste que le serveur www soit paramétré pour savoir à qui refiler le fichier en entrée.

PS. Ce topic à dérivé du sujet initial, j'arrête là. :oops: Il faudrait continuer dans "Simple Web Server" par exemple ou créer un nouveau topic. :wink:
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Editeur D'expression

Message par Shadow »

KCC, c'est moi qui avait demander si je pouvais inclure le
compilateur dans mon programme, chose strictement interdis !

Donc oui faudra avoir PB, c'est le revers de la médaille :)
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Editeur D'expression

Message par falsam »

Si je reprend ton exemple en une ligne tu sais si cet exemple est valide et tu as meme le résultat

Code : Tout sélectionner

Debug 47 * (48 + 98 / (24 /5)) + 99 * (99 + CountString("abcdefABCDEF", "a") - 24) * Round(987, #PB_Round_Down) / (45 * 76)
debug a écrit :5555.3999999999996
#yeah #tropfortlemec #okjesors :mrgreen:
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Editeur D'expression

Message par Shadow »

Voici une nouvelle version.
Épurer au maximum.

Par contre ça m’ennuie que le compilateur créer des fichier à chaque fois mais peut être n'est-je pas le choix ?
Il peu pas faire tous ça en mémoire seulement ?

Car a chaque vérification ou validation il dois compiler et créer donc des fichier.
Peut-on faire autrement ?

Code : Tout sélectionner


; Editeur D'expression 1.40
; Créer par Monsieur Dieppedalle David le 14/02/2017.

;{- Enumerations / DataSections

;{ Windows
Enumeration
  #FenetreEditeurExpression
EndEnumeration
;}

;{ Gadgets
Enumeration
  
  #Texte_Info_Editeur_Resultat
  #Texte_Info_Editeur_Expression
  #Texte_Info_Sortie_Editeur_Expression
  #Texte_Info_Panel
  
  #Editeur_Expression
  #Editeur_Resultat
  
  #Panel
  
  #Boutton_0
  #Boutton_1
  #Boutton_2
  #Boutton_3
  #Boutton_4
  #Boutton_5
  #Boutton_6
  #Boutton_7
  #Boutton_8
  #Boutton_9
  #Boutton_Point
  #Boutton_Or
  #Boutton_Xor
  #Boutton_And
  #Boutton_Divise
  #Boutton_Parenthese
  #Boutton_Plus
  #Boutton_Moins
  #Boutton_Multiplie
  #Boutton_Inferieur
  #Boutton_Superieur_Ou_Egale
  #Boutton_Inferieur_Ou_Egale
  #Boutton_Decalage_Droite
  #Boutton_Decalage_Gauche
  #Boutton_Superieur
  #Boutton_Not
  #Boutton_Modulo_Binaire
  #Boutton_Exponentiel
  #Boutton_Hexadecimal
  #Boutton_Different
  #Boutton_Egale
  
  #OptionGadget_Sortie_Entier_Signe
  #OptionGadget_Sortie_Entier_Non_Signe
  #OptionGadget_Sortie_Float
  #OptionGadget_Sortie_Double
  #OptionGadget_Sortie_Hexadecimale
  #OptionGadget_Sortie_Binaire
  
  #Boutton_Verifier
  #Boutton_Valider
  #Boutton_Annuler
  
EndEnumeration
;}

;{ Fonts
Enumeration
  #Font_Texte_Info_Editeur_Resultat
  #Font_Texte_Info_Editeur_Expression
  #Font_Texte_Info_Sortie_Editeur_Expression
  #Font_Texte_Info_Panel
  #Font_Editeur_Expression
  #Font_Editeur_Resultat
  #Font_Panel
  #Font_OptionGadget
EndEnumeration
;}

Define.l Event, EventWindow, EventGadget, EventType, EventMenu

Global ErreurCompilation = 0
Global MessageErreur$ = ""
Global Sortie$ = ""
Global ModeSortieResultat$ = "Str"
Global Resultat$ = ""

;}

Procedure.b AppelCompilateur()
  
  If CreateFile(1, "CodeSource.pb")
    
    Select ModeSortieResultat$
        
      Case "Str"
        WriteString(1, "CreateFile(1, " + Chr(34) + "Resultat.txt" + Chr(34) + "): WriteString(1, Str(" + GetGadgetText(#Editeur_Expression) + ")): CloseFile(1)")
        
      Case "StrU"
        WriteString(1, "CreateFile(1, " + Chr(34) + "Resultat.txt" + Chr(34) + "): WriteString(1, StrU(" + GetGadgetText(#Editeur_Expression) + ")): CloseFile(1)")
        
      Case "StrF"
        WriteString(1, "CreateFile(1, " + Chr(34) + "Resultat.txt" + Chr(34) + "): WriteString(1, StrF(" + GetGadgetText(#Editeur_Expression) + ")): CloseFile(1)")
        
      Case "StrD"
        WriteString(1, "CreateFile(1, " + Chr(34) + "Resultat.txt" + Chr(34) + "): WriteString(1, StrD(" + GetGadgetText(#Editeur_Expression) + ")): CloseFile(1)")
        
      Case "Hex"
        WriteString(1, "CreateFile(1, " + Chr(34) + "Resultat.txt" + Chr(34) + "): WriteString(1, Hex(" + GetGadgetText(#Editeur_Expression) + ")): CloseFile(1)")
        
      Case "Bin"
        WriteString(1, "CreateFile(1, " + Chr(34) + "Resultat.txt" + Chr(34) + "): WriteString(1, Bin(" + GetGadgetText(#Editeur_Expression) + ")): CloseFile(1)")
        
    EndSelect
    
    CloseFile(1)
    
  Else
    MessageRequester("Erreur !", "Impossible d'écrire le code source !", 16)
    
  EndIf
  
  Delay(10) ; Histoire de laisser souffler un peu le fichier.
  
  Compilateur = RunProgram(#PB_Compiler_Home + "/Compilers/pbcompiler", "CodeSource.pb", GetCurrentDirectory(), #PB_Program_Open | #PB_Program_Read | #PB_Program_Hide)
  
  Sortie$ = ""
  MessageErreur$ = ""
  Resultat$ = ""
  
  If Compilateur 
    
    While ProgramRunning(Compilateur)
      
      If AvailableProgramOutput(Compilateur)
        
        Sortie$ = ReadProgramString(Compilateur)
        
        If FindString(Sortie$, "Line")
          MessageErreur$ = Sortie$ + Chr(13)
          
        Else
          MessageErreur$ = "Pas d'erreurs !"
          
        EndIf
        
      EndIf
      
    Wend
    
    ErreurCompilation = ProgramExitCode(Compilateur)
    CloseProgram(Compilateur) ; Ferme la connection vers le programme
    
    Delay(10) ; Histoire de laisser souffler un peu le programme.
    
    DeleteFile(GetCurrentDirectory() + "CodeSource.pb")
    DeleteFile(GetCurrentDirectory() + "PureBasic.exe")
    
    If Bool(Not ErreurCompilation) ; Not, inversion de valeur, 0 = 1 et 1 = 0. 0 = pas d'erreurs, 1 = erreurs
      
      If ReadFile(1, GetCurrentDirectory() + "Resultat.txt")
        
        While Eof(1) = 0           ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File') 
          Resultat$ + ReadString(1) ; Affiche du fichier
        Wend
        
        CloseFile(1)
        
      Else
        MessageRequester("Erreur !", "Impossible d'afficher le résultat !", 16)
        
      EndIf
      
    EndIf
    
    Delay(10) ; Histoire de laisser souffler un peu le fichier.
    
    DeleteFile(GetCurrentDirectory() + "Resultat.txt")
    ProcedureReturn Bool(Not ErreurCompilation) ; Not, inversion de valeur, 0 = 1 et 1 = 0. 0 = pas d'erreurs, 1 = erreurs
    
  EndIf
  
EndProcedure

Procedure OpenWindow_FenetreEditeurExpression()
  If OpenWindow(#FenetreEditeurExpression, 400, 159, 500, 625, "Editeur D'expression 1.40", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
    
    ; Création des Gadgets:
    TextGadget(#Texte_Info_Editeur_Expression, 10, 6, 480, 17, "Entrez votre Expression Mathématique:", #PB_Text_Center)
    SetGadgetFont(#Texte_Info_Editeur_Expression, LoadFont(#Font_Texte_Info_Editeur_Expression, "Times New Roman", 12, #PB_Font_Bold|#PB_Font_HighQuality))
    SetGadgetColor(#Texte_Info_Editeur_Expression, #PB_Gadget_FrontColor, RGB(0, 0, 200))
    
    EditorGadget(#Editeur_Expression, 10, 27, 480, 215, #PB_Editor_WordWrap)
    SetGadgetFont(#Editeur_Expression, LoadFont(#Font_Editeur_Expression, "Microsoft Sans Serif", 8, #PB_Font_HighQuality))
    SetGadgetColor(#Editeur_Expression, #PB_Gadget_FrontColor, RGB(0, 0, 0))
    
    TextGadget(#Texte_Info_Sortie_Editeur_Expression, 10, 250, 40, 17, "Sortie:", #PB_Text_Center)
    SetGadgetFont(#Texte_Info_Sortie_Editeur_Expression, LoadFont(#Font_Texte_Info_Sortie_Editeur_Expression, "Times New Roman", 9, #PB_Font_Bold|#PB_Font_HighQuality))
    SetGadgetColor(#Texte_Info_Sortie_Editeur_Expression, #PB_Gadget_FrontColor, RGB(0, 0, 200))
    
    Font_OptionGadget = LoadFont(#Font_OptionGadget, "Times New Roman", 9, #PB_Font_HighQuality)
    
    OptionGadget(#OptionGadget_Sortie_Entier_Signe, 100, 250, 80, 15, "- Entier Signé")
    SetGadgetFont(#OptionGadget_Sortie_Entier_Signe, Font_OptionGadget)
    
    OptionGadget(#OptionGadget_Sortie_Entier_Non_Signe, 215, 250, 110, 15, "- Entier Non Signé")
    SetGadgetFont(#OptionGadget_Sortie_Entier_Non_Signe, Font_OptionGadget)
    
    OptionGadget(#OptionGadget_Sortie_Float, 365, 250, 50, 15, "- Float")
    SetGadgetFont(#OptionGadget_Sortie_Float, Font_OptionGadget)
    
    OptionGadget(#OptionGadget_Sortie_Double, 100, 270, 60, 15, "- Double")
    SetGadgetFont(#OptionGadget_Sortie_Double, Font_OptionGadget)
    
    OptionGadget(#OptionGadget_Sortie_Hexadecimale, 215, 270, 95, 15, "- Hexadecimale")
    SetGadgetFont(#OptionGadget_Sortie_Hexadecimale, Font_OptionGadget)
    
    OptionGadget(#OptionGadget_Sortie_Binaire, 365, 270, 60, 15, "- Binaire")
    SetGadgetFont(#OptionGadget_Sortie_Binaire, Font_OptionGadget)
    
    SetGadgetState(#OptionGadget_Sortie_Entier_Signe, #True)
    
    TextGadget(#Texte_Info_Editeur_Resultat, 10, 300, 480, 17, "Résultat de sortie:", #PB_Text_Center)
    SetGadgetFont(#Texte_Info_Editeur_Resultat, LoadFont(#Font_Texte_Info_Editeur_Resultat, "Times New Roman", 12, #PB_Font_Bold|#PB_Font_HighQuality))
    SetGadgetColor(#Texte_Info_Editeur_Resultat, #PB_Gadget_FrontColor, RGB(255, 150, 0))
    EditorGadget(#Editeur_Resultat, 10, 320, 480, 17, #PB_Editor_ReadOnly)
    SetGadgetFont(#Editeur_Resultat, LoadFont(#Font_Editeur_Resultat, "Microsoft Sans Serif", 8, #PB_Font_HighQuality))
    SetGadgetColor(#Editeur_Resultat, #PB_Gadget_FrontColor, RGB(0, 150, 0))
    
    TextGadget(#Texte_Info_Panel, 10, 355, 480, 17, "Panel des commandes:", #PB_Text_Center)
    SetGadgetFont(#Texte_Info_Panel, LoadFont(#Font_Texte_Info_Panel, "Times New Roman", 12, #PB_Font_Bold|#PB_Font_HighQuality))
    SetGadgetColor(#Texte_Info_Panel, #PB_Gadget_FrontColor, RGB(200, 50, 0))
    PanelGadget(#Panel, 10, 375, 480, 200)
    SetGadgetFont(#Panel, LoadFont(#Font_Panel, "Microsoft Sans Serif", 8, #PB_Font_HighQuality))
    
    AddGadgetItem(#Panel, -1, "Basique")
    ButtonGadget(#Boutton_0, 25, 115, 70, 30, "0")
    GadgetToolTip(#Boutton_0, "0")
    ButtonGadget(#Boutton_Point, 95, 115, 35, 30, ".")
    GadgetToolTip(#Boutton_Point, ".")
    ButtonGadget(#Boutton_1, 25, 85, 35, 30, "1")
    GadgetToolTip(#Boutton_1, "1")
    ButtonGadget(#Boutton_2, 60, 85, 35, 30, "2")
    GadgetToolTip(#Boutton_2, "2")
    ButtonGadget(#Boutton_3, 95, 85, 35, 30, "3")
    GadgetToolTip(#Boutton_3, "3")
    ButtonGadget(#Boutton_4, 25, 55, 35, 30, "4")
    GadgetToolTip(#Boutton_4, "4")
    ButtonGadget(#Boutton_5, 60, 55, 35, 30, "5")
    GadgetToolTip(#Boutton_5, "5")
    ButtonGadget(#Boutton_6, 95, 55, 35, 30, "6")
    GadgetToolTip(#Boutton_6, "6")
    ButtonGadget(#Boutton_7, 25, 25, 35, 30, "7")
    GadgetToolTip(#Boutton_7, "7")
    ButtonGadget(#Boutton_8, 60, 25, 35, 30, "8")
    GadgetToolTip(#Boutton_8, "8")
    ButtonGadget(#Boutton_9, 95, 25, 35, 30, "9")
    GadgetToolTip(#Boutton_9, "9")
    ButtonGadget(#Boutton_Plus, 145, 115, 35, 30, "+")
    GadgetToolTip(#Boutton_Plus, "Addition")
    ButtonGadget(#Boutton_Moins, 145, 85, 35, 30, "-")
    GadgetToolTip(#Boutton_Moins, "Soustraction")
    ButtonGadget(#Boutton_Multiplie, 145, 55, 35, 30, "*")
    GadgetToolTip(#Boutton_Multiplie, "Multiplication")
    ButtonGadget(#Boutton_Divise, 145, 25, 35, 30, "/")
    GadgetToolTip(#Boutton_Divise, "Division")
    ButtonGadget(#Boutton_Parenthese, 180, 115, 35, 30, "()")
    GadgetToolTip(#Boutton_Parenthese, "Parenthèses")
    ButtonGadget(#Boutton_Hexadecimal, 180, 85, 35, 30, "$")
    GadgetToolTip(#Boutton_Hexadecimal, "Hexadecimal")
    ButtonGadget(#Boutton_Modulo_Binaire, 180, 55, 35, 30, "%")
    GadgetToolTip(#Boutton_Modulo_Binaire, "Modulo / Binaire")
    ButtonGadget(#Boutton_Exponentiel, 180, 25, 35, 30, "^")
    GadgetToolTip(#Boutton_Exponentiel, "Exponentiel")
    
    CloseGadgetList()
    
    ButtonGadget(#Boutton_Verifier, 100, 585, 100, 30, "Verifier")
    ButtonGadget(#Boutton_Valider, 200, 585, 100, 30, "Valider")
    ButtonGadget(#Boutton_Annuler, 300, 585, 100, 30, "Annuler")
    
    SetActiveGadget(#Editeur_Expression)
    
  EndIf
EndProcedure

OpenWindow_FenetreEditeurExpression()

;{- Event loop

Repeat ; Départ des évènements de boucle
  
  Event = WaitWindowEvent(1) ; Cette ligne attend pendent (Minuteur) qu'un évènement soit recus par la fenêtre
  EventWindow = EventWindow(); La fenêtre ou l'évènement c'est produit
  EventGadget = EventGadget(); Pour savoir sur quel gadget c'est produis l'évènement
  EventMenu = EventMenu()    ; Pour savoir sur quel menue c'est produis l'évènement
  EventType = EventType()    ; Le type d'évènement qui c'est produis sur le gadget
  
  Select Event
      
    Case #PB_Event_Gadget
      
      Select EventGadget
          
        Case #Boutton_0
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "0")
          
        Case #Boutton_1
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "1")
          
        Case #Boutton_2
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "2")
          
        Case #Boutton_3
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "3")
          
        Case #Boutton_4
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "4")
          
        Case #Boutton_5
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "5")
          
        Case #Boutton_6
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "6")
          
        Case #Boutton_7
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "7")
          
        Case #Boutton_8
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "8")
          
        Case #Boutton_9
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "9")
          
        Case #Boutton_Point
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, ".")
          
        Case #Boutton_Parenthese
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "()")
          
        Case #Boutton_Plus
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "+")
          
        Case #Boutton_Moins
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "-")
          
        Case #Boutton_Multiplie
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "*")
          
        Case #Boutton_Divise
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "/")
          
        Case #Boutton_Modulo_Binaire
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "%")
          
        Case #Boutton_Exponentiel
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "Pow(Nombre, Puissance)")
          
        Case #Boutton_Hexadecimal
          SendMessage_(GadgetID(#Editeur_Expression), #EM_REPLACESEL, 0, "$")
          
        Case #Editeur_Expression
          
          If FindString(GetGadgetText(#Editeur_Expression), Chr(10)) Or FindString(GetGadgetText(#Editeur_Expression), Chr(13))
            SetGadgetText(#Editeur_Expression, ReplaceString(ReplaceString(GetGadgetText(#Editeur_Expression), Chr(10), ""), Chr(13), ""))
            keybd_event_(#VK_END,0,0,0)
            keybd_event_(#VK_END,0,2,0)
          EndIf
          
        Case #OptionGadget_Sortie_Entier_Signe
          ModeSortieResultat$ = "Str"
          
        Case #OptionGadget_Sortie_Entier_Non_Signe
          ModeSortieResultat$ = "StrU"
          
        Case #OptionGadget_Sortie_Float
          ModeSortieResultat$ = "StrF"
          
        Case #OptionGadget_Sortie_Double
          ModeSortieResultat$ = "StrD"
          
        Case #OptionGadget_Sortie_Hexadecimale
          ModeSortieResultat$ = "Hex"
          
        Case #OptionGadget_Sortie_Binaire
          ModeSortieResultat$ = "Bin"
          
        Case #Boutton_Verifier
          
          If GetGadgetText(#Editeur_Expression) > ""
            
            If AppelCompilateur()
              MessageRequester("Résultat...", MessageErreur$, 64)
              SetGadgetText(#Editeur_Resultat, Resultat$)
              
            Else
              MessageRequester("Résultat...", MessageErreur$, 16)
              SetGadgetText(#Editeur_Resultat, "Opperation non valide !")
              
            EndIf
            
          EndIf
          
        Case #Boutton_Valider
          
          If GetGadgetText(#Editeur_Expression) > ""
            
            If AppelCompilateur()
              
              MessageRequester("Sortie...", "Le resultat de sortie est: " + Resultat$, 64)
              CloseWindow(#FenetreEditeurExpression)
              
              Break
              
            Else
              ClearGadgetItems(#Editeur_Resultat)
              SetGadgetText(#Editeur_Resultat, "Opperation non valide !")
              MessageRequester("Résultat...", MessageErreur$, 16)
              
            EndIf
            
          EndIf
          
        Case #Boutton_Annuler
          
          Event = #PB_Event_CloseWindow
          CloseWindow(#FenetreEditeurExpression)
          
          Break
          
      EndSelect
      
    Case #PB_Event_Menu
      
      Select EventMenu
          
        Case 0
          
      EndSelect
      
    Case #PB_Event_CloseWindow  
      
  EndSelect
  
Until Event = #PB_Event_CloseWindow ; Fin des évènements de boucle
                                    ;
                                    ;}
Dernière modification par Shadow le jeu. 16/févr./2017 1:45, modifié 1 fois.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Editeur D'expression

Message par Ar-S »

Je n'ai pas testé mais je vois que dans ta procédure AppelCompilateur() tu as encore plein de IF et plein de closefile()

Ne pourrais tu pas faire un truc du genre ? Je répète j'ai pas testé mais ça me parait faisable :

Code : Tout sélectionner

    If CreateFile(1, "CodeSource.pb")
      
    Select ModeSortieResultat$
      Case "Str"
        WriteStringN(1, "CreateFile(1, " + Chr(34) + "Resultat.txt" + Chr(34) + "): WriteString(1, Str(" + GetGadgetText(#Editeur_Expression) + "))
        
      Case "StrU"
        WriteStringN(1, "CreateFile(1, " + Chr(34) + "Resultat.txt" + Chr(34) + "): WriteString(1, StrU(" + GetGadgetText(#Editeur_Expression) + "))
        
      Case "StrD"
        WriteStringN(1, "CreateFile(1, " + Chr(34) + "Resultat.txt" + Chr(34) + "): WriteString(1, StrF(" + GetGadgetText(#Editeur_Expression) + "))
        
      Case "Hex"  
        WriteStringN(1, "CreateFile(1, " + Chr(34) + "Resultat.txt" + Chr(34) + "): WriteString(1, Hex(" + GetGadgetText(#Editeur_Expression) + "))
        
      Case "Bin"
        WriteStringN(1, "CreateFile(1, " + Chr(34) + "Resultat.txt" + Chr(34) + "): WriteString(1, Bin(" + GetGadgetText(#Editeur_Expression) + "))
        
    EndSelect
    CloseFile(1)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Editeur D'expression

Message par Shadow »

C'est fait, merci Ar'S :)
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Editeur D'expression

Message par falsam »

Shadow a écrit :C'est fait, merci Ar'S :)
par qui ?
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Editeur D'expression

Message par Shadow »

Voici une nouvelles version encore plus complète:
http://www.aht.li/3026431/Editeur_Dexpression.7z

Je pense que je vais peut être ajouter un système pour que l'utilisateur
puisse ajouté très simplement d'autres fonctions du langage.

Dites-moi se que vous en pensez et si vous avez des idée d'amélioration.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Editeur D'expression

Message par Shadow »

Voici la version 1.60.

Divers ajout avec aussi la possibilité d'ajouté très facilement ses propres fonctions.
http://www.aht.li/3026431/Editeur_Dexpression.7z

J'aimerais bien mettre de la couleur dans l’éditeur mais je sais pas comment.
Éditeur Scintilla peut être ?

Je m'y connais pas dedans, vais voir ça.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Editeur D'expression

Message par Shadow »

Ajout:

Exemple d'utilisation dans un programme.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: Editeur D'expression

Message par SPH »

Shadow a écrit :Dites-moi se que vous en pensez et si vous avez des idée d'amélioration.
utilisation de nombres a plus de 20 chiffres
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Editeur D'expression

Message par Shadow »

Ouais bon je vois que t'as rien compris toi :mrgreen:
Question simple:

Est ce que PB autorise un nombre plus grand que 256 ^ 8 (64 bits) ?
Réponse: NON

Donc pas possible.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: Editeur D'expression

Message par SPH »

Shadow a écrit :Est ce que PB autorise un nombre plus grand que 256 ^ 8 (64 bits) ?
Réponse: NON

Donc pas possible.
LOL :lol: :lol: :lol:
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: Editeur D'expression

Message par SPH »

Sache que j'ai reussi a faire en PB un nombre de 800000 chiffres ! :idea:
Ca se programme 8)

Ca m'avais pris plus d'une heure et le moteur de la routine etait en ASM :!:
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Editeur D'expression

Message par Shadow »

Ah !

Et bien si tu as du code pour calculer sur
de très grand nombre ça m’intéresse :)
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Répondre