Community
    • Login

    Calculator on line

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    4 Posts 4 Posters 9.9k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Monu KashyapM Offline
      Monu Kashyap
      last edited by

      A little suggestion for Notepad++,
      If notepad++ can do ontime calculation of selected numbers, That would be Amazing !!
      for example if I selected a simple line of text like :
      250+150+100+500
      The result of the calculation will show in status bar…
      (If possible)

      And,
      Thanks for the Amazing software Notepad++
      Regards,
      Monu Kashyap
      (India)

      Michael VincentM Alan KilbornA 2 Replies Last reply Reply Quote 0
      • Michael VincentM Offline
        Michael Vincent @Monu Kashyap
        last edited by

        @Monu-Kashyap said in Calculator on line:

        If notepad++ can do ontime calculation of selected numbers, That would be Amazing !!

        NppCalc
        MathPad

        Though I think they’re both 32-bit only.

        You can use NppExec with a simple “script”:

        ::=
        SET LOCAL ANS ~ $(ARGV)
        ECHO $(ANS)
        

        Then:

        e321963e-872e-4883-b800-14c70606535f-image.png

        Cheers.

        1 Reply Last reply Reply Quote 3
        • Alan KilbornA Offline
          Alan Kilborn @Monu Kashyap
          last edited by Alan Kilborn

          @Monu-Kashyap said in Calculator on line:

          if I selected a simple line of text like :
          250+150+100+500

          Add an = at the end and select the text of the “equation” in Notepad++ to obtain:

          691d0e05-53af-474f-9724-c0400b5dcd70-image.png

          Press Ctrl+c to copy it to the clipboard.

          Go to the Run menu and choose Run… and specify something similar to this:

          3f92834b-f9b3-4ac1-9468-7dbf5e45ccde-image.png

          Press the Run button.

          When Calculator starts, press Ctrl+v; results:

          5b957f03-043e-4dd1-93e1-1dd6118c2fac-image.png

          Save the Run menu entry and bind it to a keycombo if you do this sort of thing frequently.

          EDIT: Not sure why I didn’t use your exact numbers in the example! :-)

          1 Reply Last reply Reply Quote 4
          • guy038G Offline
            guy038
            last edited by guy038

            Hello @monu-kashyap, @Michael-vincent, @alan-kilborn, and All,

            Here is an other solution which uses a batch file and the DOS command set /a

            • Open a new N++ tab ( Ctrl + N )

            • Run the menu command Encoding > Convert to ANSI

            • Select all the batch file contents, below, and copy them in this new empty file

            • Save it, in the system folder C:\Windows\System32, as cal.bat

            @echo OFF
            
            REM ***************************************************************
            REM *  BATCH file "Cal.bat" for MULTIPLE calculations in ONE go   *
            REM *                                                             *
            REM *  Type 'cal' WITHOUT parameter or 'cal /?' for EXPLANATIONS  *
            REM ***************************************************************
            
            
            REM ************************************************************************
            REM *  The TITLE of the DOS windows is changed as "MULTIPLE calculations"  *
            REM ************************************************************************
            title MULTIPLES calculations
            
            REM ***************************************************************************
            REM *  color <HEX Background><HEX Foreground> sets the COLORS of the CONSOLE  *
            REM *                                                                         *
            REM *          0  =  Black                     8  =  Grey                     *
            REM *          1  =  Dark Blue                 9  =  Blue                     *
            REM *          2  =  Forest Green              A  =  Lime                     *
            REM *          3  =  Dark Cyan                 B  =  Cyan                     *
            REM *          4  =  Dark Red                  C  =  Red                      *
            REM *          5  =  Purple                    D  =  Magenta                  *
            REM *          6  =  Olive                     E  =  Yellow                   *
            REM *          7  =  Light Grey                F  =  White                    *
            REM *                                                                         *
            REM *  You may DELETE this command ( DEFAULT values of CONSOLE are '07' )     *
            REM ***************************************************************************
            color 70
            
            REM **************************************************************************
            REM *  IF call WITHOUT any PARAMETER, JUMP to label "Help" for EXPLANATIONS  *
            REM *                                                                        *
            REM *  DON'T write "%1"=="" as the PARAMETER may contain DOUBLE quotes       *
            REM *  DON'T write !%1==!   as, if PARAMETER = /?, it DOESN't work, too      *
            REM **************************************************************************
            if %1!==! goto Help
            
            REM ************************************************************************
            REM *  IF PARAMETER = '/?', JUMP to label "Help" for EXPLANATIONS          *
            REM *                                                                      *
            REM *  DON'T write "%1"=="/?" as the PARAMETER may contain DOUBLE quotes   *
            REM *  DON'T write !%1==!/?   as, if PARAMETER = /?, it DOESN't work, too  *
            REM ************************************************************************
            if %1!==/?! goto Help
            
            echo.
            
            REM *************************************************************
            REM *  The DECLARED variables are LOCAL during BATCH execution  *
            REM *************************************************************
            setlocal
            
            :Deb
            
            REM ***********************************************************************************
            REM *  The CURRENT operation in %1 is EVALUATED and RESULT is STORED in VARIABLE %r%  *
            REM ***********************************************************************************
            SET /a r=%1
            
            REM **********************************************************************************
            REM *  The CURRENT operation %1 and its RESULT are displayed, with 10 LEADING Spaces *
            REM **********************************************************************************
            echo. && echo          %1 = %r%
            
            REM ***********************************************************
            REM *  The NEXT typed PARAMETER becomes the FIRST one ( %1 )  *
            REM ***********************************************************
            shift
            
            REM *********************************************************************
            REM *  LOOP to the :Deb LABEL for a NEXT calculation if %1 is DEFINED   *
            REM *  JUMP to the END of the BATCH, if NO MORE calculation             *
            REM *                                                                   *
            REM *  DON'T write "%1"=="" as the PARAMETER may contain DOUBLE quotes  *
            REM *  DON'T write this SYNTAX !%1==!? as well                          *
            REM *********************************************************************
            if NOT %1!==! goto Deb
            
            echo. && goto :EOF
            
            :Help
            
            REM ***************
            REM *  HELP menu  *
            REM ***************
            
            cls
            echo.
            echo.
            echo *******************************************************************************
            echo *                               BATCH file : CAL.BAT                          *
            echo *                                                                             *
            echo * SYNTAX : cal[ Op_1[ Op_2[ Op_3[...[ Op_N]]]]]  where Op_N = ONE or SEVERAL  *
            echo * ~~~~~~     of the 18 OPERATIONS, below, by DECREASING order of PRIORITY :   *
            echo *                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~    *
            echo *                                                                             *
            echo *  ()          PARENTHESES Grouping                                           *
            echo *                                                                             *
            echo *  a           DECIMAL value of the DECIMAL         number a =  a             *
            echo *  0a          DECIMAL value of the OCTAL           number a =  a             *
            echo *  0xa         DECIMAL value of the HEXADECIMAL     number a =  a             *
            echo *                                                                             *
            echo *  -a          OPPOSITE number                   of number a                  *
            echo *  ~a          Bitwise COMPLEMENT                of number a = -a - 1         *
            echo *  !a          LOGICAL NEGATION                  of number a = 0  if a ^<^> 0   *
            echo *                                                            = 1  if a = 0    *
            echo *                                                                             *
            echo *  a*b         MULTIPLICATION                    of a by b    =  a*b          *
            echo *  a/b         INTEGER QUOTIENT of the DIVISION  of a by b    =  INT (a/b)    *
            echo *  a%%b         REMAINDER        of the DIVISION  of a by b    =  a MOD b      *
            echo *                                                                             *
            echo *  a+b         ADDITION                          of a to b    =  a+b          *
            echo *  a-b         SUBTRACTION                       of b from a  =  a-b          *
            echo *                                                                             *
            echo *  "a<<b"      LEFT Shift  of b POSITIONS        of a         =  a * 2^^b      *
            echo *  "a>>b"      RIGHT Shift of b POSITIONS        of a         =  a / 2^^b      *
            echo *                                                                             *
            echo *  "a&b"       Bitwise AND                       between a and b              *
            echo *  "a^b"       Bitwise EXCLUSIVE OR              between a and b              *
            echo *  "a|b"       Bitwise OR                        between a and b              *
            echo *                                                                             *
            echo *  "var=a"     ASSIGNATION of var                to a     var = a             *
            echo *  "varOp=a"   ASSIGNATION of (var BINARY Op. a) to a     var = var  Op.  a   *
            echo *                  ( Ex :  x*=7 means  x = x * 7  )                           *
            echo *                                                                             *
            echo *                                                                             *
            echo * a, b, r = INTEGER, in range [-2,147,483,648 +2,147,483,647], with NOTATION  *
            echo *                                                                             *
            echo *  - DECIMAL     : the DIGITS of a NUMBER belong to INTERVAL [0-9]            *
            echo *  - HEXADECIMAL : the DIGITS of a NUMBER belong to INTERVAL [0-9] or [A-F]   *
            echo *  - OCTAL       : the DIGITS of a NUMBER belong to INTERVAL [0-7]            *
            echo *                                                                             *
            echo *                                                                             *
            echo * NOTES :  - The VARIABLE r is the RESULT of the LAST calculation PERFORMED   *
            echo * ~~~~~                                          ~~~~                         *
            echo *             ==) cal a r*r*r...*r  ( b TIMES the VARIABLE r )  =  a POWER b  *
            echo *                                                                             *
            echo *         - If an EXPRESSION contains some SPACES, surround it with "......"  *
            echo *                                                                             *
            echo * Ex :                                                                        *
            echo *                                                                             *
            echo *    cal "-9 +3" 011*9 "17|22" "12<<5-1" "v=r*=4" (0xba+v)/6 "17&22" "17^22"  *
            echo *                                                                             *
            echo *******************************************************************************
            
            • Now, in your active shortcuts.xml file, add the line, below, before the end of the </UserDefinedCommands> ••• </UserDefinedCommands> node
                    <Command name="Multiple Calculations" Ctrl="no" Alt="no" Shift="no" Key="0">cmd /c cal.bat $(CURRENT_WORD) && pause>NUL</Command>
            
            • Close and re-start Notepad++

            • Make a normal selection of that example line "-9 +3" 011*9 "17|22" "12<<5-1" "v=r*=4" (0xba+v)/6 "17&22" "17^22"

            • Execute the menu command Run > Multiple calculations

            Et voilà !!


            Notes :

            • Once the results read and, possibly copied in the clipboard, just hit any key to close the MULTIPLE calculations window

            • If you don’t like the color of the DOS console, just change the parameters of the color command or delete it, in the batch file !

            • To copy the results to the clipboard :

              • Click anywhere, in that DOS window, with the right mouse button and choose the Select option

              • Now, by clicking and moving around the pointer you should define a rectangular block, in the same way as a rectangular N++ selection

              • Hit the Enter key to copy the contents of this block in the clipboard

              • Paste these contents anywhere, in Notepad++ !

            • Any selection must contain an even number of double quotes, if any. For instance, the selection 3+4 "5 - 9" 3*5 is correct, where as the selection of 3+4 "5 - 9 3*5 or 3+4 "5 - 9 are incorrect !

            • Note that a single shift, logical bitwise and assignation operation, as well as any expression containing space chars, needs to be surrounded with double quotes

            • Remark that the variable r always contains the result of the last performed operation !


            Just test it. I hope you’ll like it !

            Best Regards,

            guy038

            P.S. :

            I finally don’t think that the conversion to ANSI is needed, as no character of this batch file is over \x{007f}, anyway !

            1 Reply Last reply Reply Quote 1

            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

            With your input, this post could be even better 💗

            Register Login
            • First post
              Last post
            The Community of users of the Notepad++ text editor.
            Powered by NodeBB | Contributors