Eval function request

Just starting out? Need help? Post your questions and find answers here.
ShadowStorm
Enthusiast
Enthusiast
Posts: 237
Joined: Tue Feb 14, 2017 12:07 pm

Eval function request

Post by ShadowStorm »

Bonjour,

Sauriez-vous si il existe un code complet pour évaluer
une oppération mathématique dans une chaîne de caractère (String) ?

J'ai déjà vue quelques codes qui font une partie de se que je voudrait
mais existe t-il un code complet ?

Je voudrait un code qui sache évaluer toutes expression mathématique
avec toutes les commande de math de PureBasic:
---------------
Hello,

Would you know if there is a complete code to evaluate
A mathematical operation in a String?

I have already seen some codes that make up a part of what I would like
But is there a complete code?

I would like a code that knows how to evaluate all mathematical expression
With all PureBasic math commands:

ACos
ACosH
ASin
ASinH
ATan
ATan2
ATanH
Abs
Cos
CosH
Degree
Exp
Infinity
Int
IntQ
IsInfinity
IsNaN
Log
Log10
Mod
NaN
Pow
Radian
Random
RandomData
RandomSeed
Round
Sign
Sin
SinH
Sqr
Tan
TanH
I am French, I do not speak English.
My apologies for the mistakes.

I have sometimes problems of expression
I am sometimes quite clumsy, please excuse me and let me know.
User avatar
STARGÅTE
Addict
Addict
Posts: 2086
Joined: Thu Jan 10, 2008 1:30 pm
Location: Germany, Glienicke
Contact:

Re: Eval function request

Post by STARGÅTE »

http://www.purebasic.fr/german/viewtopi ... =8&t=29159
With this module you can also add personal functions and constants
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Lizard - Script language for symbolic calculations and moreTypeface - Sprite-based font include/module
ShadowStorm
Enthusiast
Enthusiast
Posts: 237
Joined: Tue Feb 14, 2017 12:07 pm

Re: Eval function request

Post by ShadowStorm »

Thx :)
I am French, I do not speak English.
My apologies for the mistakes.

I have sometimes problems of expression
I am sometimes quite clumsy, please excuse me and let me know.
User avatar
Kwai chang caine
Always Here
Always Here
Posts: 5353
Joined: Sun Nov 05, 2006 11:42 pm
Location: Lyon - France

Re: Eval function request

Post by Kwai chang caine »

Congratulation SHADOW, you dare come finally here, after numerous years of PB programming passion :wink:
You will see, english is not also difficult than you believe, and the members always try to understand, even with bad english langage, like mine :oops: :lol:
And mainly the members of this forum are very strong and really kind with the beginners
Welcome in the power forum of PureBasic 8)

PS: here you must put the english BEFORE the french (If really you want adding it), it's more polite :wink:
ImageThe happiness is a road...
Not a destination
ShadowStorm
Enthusiast
Enthusiast
Posts: 237
Joined: Tue Feb 14, 2017 12:07 pm

Re: Eval function request

Post by ShadowStorm »

Hello,

Here is another approach, it has the advantage of being
As flexible as the PB language itself.

Code: Select all

; Editeur D'expression 1.40
; Créer par Monsieur Dieppedalle David (Shadow, ShadowStorm) 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
                                    ;
                                    ;}
I am French, I do not speak English.
My apologies for the mistakes.

I have sometimes problems of expression
I am sometimes quite clumsy, please excuse me and let me know.
ShadowStorm
Enthusiast
Enthusiast
Posts: 237
Joined: Tue Feb 14, 2017 12:07 pm

Re: Eval function request

Post by ShadowStorm »

Here is a new version even more complete:
http://www.aht.li/3026431/Editeur_Dexpression.7z
I am French, I do not speak English.
My apologies for the mistakes.

I have sometimes problems of expression
I am sometimes quite clumsy, please excuse me and let me know.
ShadowStorm
Enthusiast
Enthusiast
Posts: 237
Joined: Tue Feb 14, 2017 12:07 pm

Re: Eval function request

Post by ShadowStorm »

Here is version 1.60.

Various addition with also the possibility of added very easily its own functions.
http://www.aht.li/3026431/Editeur_Dexpression.7z
I am French, I do not speak English.
My apologies for the mistakes.

I have sometimes problems of expression
I am sometimes quite clumsy, please excuse me and let me know.
ShadowStorm
Enthusiast
Enthusiast
Posts: 237
Joined: Tue Feb 14, 2017 12:07 pm

Re: Eval function request

Post by ShadowStorm »

Adding:

Example of use in a program.
I am French, I do not speak English.
My apologies for the mistakes.

I have sometimes problems of expression
I am sometimes quite clumsy, please excuse me and let me know.
ShadowStorm
Enthusiast
Enthusiast
Posts: 237
Joined: Tue Feb 14, 2017 12:07 pm

Re: Eval function request

Post by ShadowStorm »

I am French, I do not speak English.
My apologies for the mistakes.

I have sometimes problems of expression
I am sometimes quite clumsy, please excuse me and let me know.
ShadowStorm
Enthusiast
Enthusiast
Posts: 237
Joined: Tue Feb 14, 2017 12:07 pm

Re: Eval function request

Post by ShadowStorm »

Version 1.20 (old 1.70) finished after a big job, and it's not finished :)

Note: The version number has been corrected to stick better to the program and its progress.
http://www.aht.li/3032738/Editeur_Dexpr ... ifusion.7z

If you have idea of ​​addition or other, do not hesitate :)
I am French, I do not speak English.
My apologies for the mistakes.

I have sometimes problems of expression
I am sometimes quite clumsy, please excuse me and let me know.
Post Reply