Dingue Calculator

Last update: 3rd of April 2021

DESCRIPTION:
An easy to use, yet fully featured multipurpose calculator and unit convertor.


LICENSE: Freeware.

DOWNLOAD: version 2.3 Beta dingue_calculator_beta.zip (Size: 48 Kb)
In case of error, please use:
DOWNLOAD: version 2.1 dingue_calculator_eng.zip (Size: 35 Kb)

FEATURES:
-See the operation you are typing and allow re-editing it before calculating the result*
-Convert many units to many units including data storage
-Compose complex units with no limitation
-Convert currencies with a customized currency list
-Use of customized variables
-Use of demultiplier symbols such as K,M,G and T to avoid typing large numbers
-Optionaly reduce the lenght of the result by using demultiplier symbols such as K,M,G and T
-Optionaly reduce the number of decimals
-Optionaly separates thousands with white spaces
-Switch back to the previous operations to re-edit them ("Previous/Next" buttons)
-See a full list of the operations that you have been doing with copy-paste allowed
-Save the operations and the results as a text file.
-Calculate percents of a certain number or how many percent this number is in another one
-Gives value of Pi
-Use "V" symbol for square root, visualy closer to classic math, also works with or without parenthesis.
-Cos(X) Sin(X) Tan(X) etc works with or without parenthesis.
-Optionaly gives help and tips on the fly
-Use buttons or type symbols manualy as you like
-Intuitive, customizable, skinable HTA interface, in another word: Cool!

*(With the default calculator which imitate a standard handheld calculator, the calculation is
processed immediately after an arithmetic operator is entered, preventing any complex operations.)


CONTACT: projects@htasoft.com
			TECHNICAL HELP AND INFORMATIONS
			
SOFTWARE REQUIREMENT
Any Windows OS.
	--------
Requirement for unpatched, non updated Windows 98 or under: Windows Script 5.6
________________________________

INSTALLATION

-There is no need for an installer: Extract all the files to the directory 
where it suits you best (no further installation necessary).

			VERY IMPORTANT: 

	On Windows VISTA/7 you cannot install this program in  "Program Files" 
	or in "Windows" or one of their subfolders.
	I recommand to install it inside the "Public" folder or subfolder 
	or in one of the user's "Document" subfolder.

	On Xp avoids the "Windows" folder. The best is still to follow the rules for Vista.

	On w98, you can install it wherever you want. 

-To run the program double-click "Calculator*.hta". (The asterisk represent the program version)

-If you want, create manualy a shortcut to your desktop or to the quick launch linking to this file.
To do that, drag and drop the file by pressing the right-click mouse button. Upon dropping the file, 
select "create shortcut here".

________________________________

HOW TO USE?

Doubleclic on Calculator*.hta
Then type in the input box the arithmetic operation you want to do, for example:

12+25 

...or a more complicated one:

123/((12*5.32*1)+V3*4V6000)+0.12*Cos12-pi

...then hit the "ENTER" key energicaly or click "Calculate"!
Well, I hope the interface is intuitive enough and that you don't need to read anything more. 
Save the very important warning bellow.
If something is not clear when you use this program, just look here.
________________________________________

USE OF DOTS AND COMAS
			************************************************
							VERY IMPORTANT:
			DO NOT USE COMAS OR DOTS AS THOUSANDS SEPARATORS.
						Use white spaces instead!
			*************************************************
I could have set an option to allow the user to choose what to use as thousands separators, 
but I prefer not to do so in order to avoid mistakes in case of wrong configuration.
Whit white spaces there is no mistake wherever is your location in the world.

Dots and comas are always interprated as decimal separators.
This means that you can use a dot or a coma as decimal separator 
no matter your region or your computer settings.
For example: 2.3 will be the same as 2,3
but 2,300 will be read as 2.3 and 2.300 will also be read as 2.3!
2.300.200 will return an error.
			
USE OF WHITE SPACES
You can use as many white space as you want, wherever you want even several white space in a row.
It doesn't have to be thousand separators. Whte spaces are simply ignored.

USE OF SQUARE AND CUBIC SYMBOLS
You can write ² and ³ as well as simple 2 and 3 to mark them as square and cubic.
This works with units as well as root numbers (V)
Example: ²V and 4² and m² are all accepted.

USE OF DEMULTIPLIER SYMBOL
To make your formula shorter and simplier you can use demultiplier symbol such as K,M,G or T.
This will avoid typing long series of zeroes when working with large numbers.

	K (Kilo) multiplies the number by 1000.
	M (Mega) multiplies the number by 1000 000.
	G (Giga) multiplies the number by 1000 000 000.
	T (Tera) multiplies the number by 1000 000 000 000.

Example:
3.25M wil be equivalent to 3250000 (3 million 250 thousands)
Example:
1.5M + 250K will return 1750000

ATTENTION: These are the only symbols which are case sensitive.
This means that "M" won't mean the same thing as "m".
"M" will mean "million" while "m" will mean "meter".

You can also ask the program to use these symbols in the result. See Output Options below.
________________________________

OUTPUT OPTIONS

REDUCE THE LENGHT OF THE RESULTING NUMBER BY USING A DEMULTIPLIER SYMBOL (K,M,G or T)
This is very useful when working with high numbers.

	K (Kilo) will divide the result by 1000 and add the symbol "K" at the end.
	M (Mega) will divide the result by 1000 000 and add the symbol "M" at the end.
	G (Giga) will divide the result by 1000 000 000 and add the symbol "G" at the end.
	T (Tera) will divide the result by 1000 000 000 000 and add the symbol "T" at the end.

This function is disabled when the result is inferior to 1/10th of the demultiplier.
For example if the result is 90 and the demultiplier symbol is K (1000), 
the function will ne be triggered and it will read "90".
If the result is 200, then it will read "0.2K".

In the ini file, enter "" (empty quote string) to disable this function. 
In the ini file, the symbol must always 
be contained within doublequote marks (example: Demultiplier = "K").
You can use these multiplier symbols in your formula as explained above.

REDUCE THE NUMBER OF DECIMALS
The number of decimals will be reduced down to the number of decimal entered. 
It will also remove unnecesary zeroes.
In the ini file, enter -1 to disable this function.

SEPARATE THOUSANDS WITH WHITE SPACES
This will improve the readability of long numbers.

Why not separating thousands with comas? 
Because different regions of the world use either a dot or a coma to separate thousands 
so I decided to use white spaces to avoid problems with the program.
___________________________________

INTERFACE OPTIONS

Changing the display option doesn't remove or disable the function shown by the buttons.
All the funtions remain accessible through the keyboard.
Typing function or symbols manualy have the same effect as pressing 
the button to include them in the formula.

Click the "Options" button, then click "OK" or "Minimalist view" to get the smallest window possible.
While under minimalist view, click the "..." button to return to the option table.

Show convertions unit lists and buttons
	(Useful for finding the right unit symbol when doing conversions. 
	Conversions work also when this option is disabled)

Show scientific operators such as Cosinus, Tangent etc
	(If you never use them, uncheck this option)

Show simple operators such as +, - , V etc
	(They are on your keyboard or very simple to type, so in fact you don't realy need these buttons. 

Show computer interpretation string
	(Usualy, you don't need this. It shows how the computer has interprated 
	what you have written with the intiutive interface. 
	It's useful to debug errors or see what happened when the result looks very wierd. 
	It can be also useful when doing important works and check if the formula entered 
	had been properly written. Interpretated strings are also valid formulas and even recomanded.)

Show the mathematic operation that had been done
	(Shows the formula which gave the curent result)

Show list of previous operations
	(Shows all the operations you have done during the session. 
	The list is erased once you close the program. 
	Use the "Save" button to save it in a separate text file)

Show tips
	(To disable once you have read them all...)
	
Show result display options
	(This will show the setting menus for the number of decimals, 
	thousands separator and the demultiplying factor so that 
	these options can be modified easily at every operation.)

DISLAY OPTIONS

Display:   o Normal   o Horizontal   o Vertical    o Full Screen

	Norma: Will cover the screen area partialy in a proportionate rectangle
	Horizontal : Will strech the window to screen width and display item horizontaly with minimal height.
	Vertical : Will strech the window to screen height and display item vertically with minimal width.
	Full Screen: Will cover the entire area of the screen. 

Options are saved in "DingueCalculator.ini".
________________________________

UNIT CONVERTION

This is very simple. Just type the usual symbols.
At the end of the formula, type "?" followed by the unit you want to convert to.

Example for converting centimeters into feet:
563cm?ft

It's recommanded to ALWAYS TYPE THE UNITS IN LOWER CASE.
Especialy for the symbols k,m,g and t which in upper case 
are interpretated as multipliers and the letter v.
(see above)

CONVERSION WITHIN A CALCULATION
You can use the conversion within a calculation:
Example:
45m + 2km?mi
will calculate 45 meters + 2 kilometers and give the result in miles

If you don't type ? followed by a unit, the last unit in the formula will be used for the convertion
Example:
45m + 2km
will convert 45 meters + 2 kilometers into kilometers

Attention you must always assign a unit after each number or use parenthesis.
Example:
40 km +5km + 2000m?mi
or
(40+5)km + 2000m?mi
and not
40 +5km + 2000m?mi

In fact a unit is equivalent to using the   *    sign. 
It multiplies the number or the parenthesis before it.

COMPLEX CONVERSION UNITS
You can compose complex units by using "/" between two or three symbols.
Example: kw/h/bar, kg/m²/s, floz/min, gal/sqft, km/s, etc

Variations are only limited by your imagination.

Are also accepted the common following symbols: 
mph (mile per hour), mps (mile per second), sqin (square inch), cuin (cubic inch), 
sqft (square foot), cuft (cubic foot), sqyd (square yeard), cuyd (cubic yard), 
sqmi (square mile), cumi (cubic mile).

USE OF SQUARE AND CUBIC SYMBOLS IN UNITS
You can write ² and ³ or simple 2 and 3 to mark them as square and cubic.
Example: m2 and m² are both accepted.

FEET AND INCHE SYMBOLS
You can use ' (for feet) and " (for inches) instead of ft and inch.

In the case of feet and inches used together (and in this case only, not with other units) 
there is no need to add a + between feet and inches.
For example:
5'3"
will be equivalent to 
5 feet + 3 inches
________________________________

DATA STORAGE UNIT CONVERTION

Dingue Calculator allows two uses of data size unit symbols. 
One commonly using only Kb, Mb, Gb etc and the IEC prefix convention using Kib and Kb, Gib and Gb etc. 

What's the effect of enabling "GiB" IEC convention?
When "Gib" convention is enabled the symbols "Kb", "Mb", "Gb" and "Tb" will multiply
by 1000, 1000 000, 1000 000 000 and 1000 000 000 000 respectively instead of 1024, 1024*1024 etc.
In this case you need to use the symbols "Kib", "Mib", "Gib" and "Tib" to multiply by 1024, 1024*1024 etc.

Example:
Enabled: 1KiB = 1024b but 1Kb = 1000b
Disabled: 1KiB and 1Kb = 1024b

More informations on Wikipedia (http://en.wikipedia.org/wiki/Binary_prefix) or in "GibConvention.hta".
________________________________

CURRENCY CONVERTION
The file "currencies.txt" contains a list of currencies and their value in US dollar as of 14th of May 2010.

	!!! YOU MUST UPDATE THE EXCHANGE RATES MANUALY BEFORE CONVERTING CURRENCIES !!!
	
To do that you can go there if you don't know where to find exchange rates:
http://www.x-rates.com/d/USD/table.html
(This website has no relation whatsoever with the author of this software 
- you can go to any other source of course)

There is no automatic currency rate updator with this program.
Therefore you are the only one responsible for the accuracy of the exchange rates.
Of course, you can update only the rates of the currencies you need at your own discretion.
You can edit the list of currencies manualy in Notepad or similar text editor.
You can add or remove entries. The list proposed is only a sample.

Each entry consist of one currency on one line with a description, 
its symbol and its value relative to the US dollar.
The symbol is what will be used in the formula and must be written under brackets after the descripton.
The value relative to the US dollar must be indicated after the   =   sign.

Symbols must be written with simple letters or numbers, without any accent, 
punctuation mark, symbol, non-latin character, hieroglyphe or any non-alphanumeric character.

Here is an example of one entry:
Pound Sterling [GBP] = 1.4756

The description is everything before the first open bracket [ . Here: Pound Sterling.
The symbol is what is between brackets []. Here: GBP
The value is a number following = . Here: 1.4756

US dollar (USD) is equal to 1.

In the calculator type the international symbol of the currency or click in the list of currencies.
You can type them in lower or in upper case. It makes no difference.

In the list provided, you can enable more currencies by 
removing the   '   sign in front of it. To disable a currency add a   '   sign in front of it. 
This is useful to make the currency list in the calculator shorter.

COMMON CURRENCY SYMBOLS AUTHORIZED:

$ (Alt+36)   = US Dollar [USD]
€ (Alt+0128) = Euro [EUR]
£ (Alt+0163) = Pound Sterling [GBP]
  (Alt+0165) = Japanese Yen [JPY]
________________________________

CUSTOMIZED VARIABLES

Customized variables are your personal variables, that you create yourself.
Attention: These variables cannot be used as convertion units. 
They basicaly replace numbers that you want to use often.
(If you need a customized convertion unit you can add it in the currency list.)

They are listed in "my_variables.txt". The format is the same as for the currency list.
Each variable has a name and a symbol: The name is for description only.
The symbol is what will be used in the formula and must be written under brackets after the descriton.
The value must be indicated after the = sign.

Variable symbols must be written with simple letters or numbers, without any accent, 
punctuation mark, symbol, non-latin character, hieroglyphe or any non-alphanumeric character.

IT'S RECOMMANDED THAT EVERY CUSTOMIZED VARIABLE SYMBOL BE PRECEDED BY "$".
Example:

Mumu [$M] = 4.5

This is necessary to avoid errors and confusion when you name a variable the same as an existing, 
hard-coded conversion unit.
For example if you name a variable "m", you will have to type "$m" in the calculator so that 
it will know that you mean your personal variable "$m" and not the lenght unit "meter".

Exceptions to this rule are x, y and z because we are sure that 
they don't exist anywhere else in the program.
You can try other variable symbols without $ but you risk creating 
an error either because the symbol is already a measure unit symbol, 
a currency symbol, a variable used by the program itself or an mathematical operator.

If you type $ alone, well,... it will be interpretated as USD, the currency symbol for american dollar!

Please note that the names of your variables is NOT case sensitive. 
This means that the variable "$joe" will be the same as "$JOE", "$jOe" and "$Joe".

Like with the currencies, you can enable or disable variables 
by removing or adding the   '   sign in front of it.

Finaly, You can write a longer description at the end of the line, 
after a single quote mark (or apostrophe) like this:  '   .
Example:

My test[$test]=1.5   ' This is what I use for testing

USING CUSTOMIZED VARIABLES

When you use such variable in conjunction with a unit symbol (eg: "ft") 
or other letters meaning something (eg: "Cos"), 
you must include the variable within parenthesis 
but not with  non-alphabetic symbols  (eg:   +  -  *  /   ) and not with "V".
Examples with the variable "x":

Cos(x)
but not
Cos x

(x)ft
but not
x ft

This doesn't apply to non-alphabetic symbols
Example:

x+y
will not give any error and will addition the two variables

With the symbol "V" (square root), the variable symbol can be used without parenthesis.
Example:

3Vx
will not give any error and will give the cubic root of x.

3V(x)
will not give any error and is the same as above

xV25
will not give any error and will give the root of 25 as x as root power. 
If x=2, it will give the square root of 25 for instance.

(x)V25
will not give any error and is the same as above

xVy
is also a valid combination
(Attention "V" must always be written in uppercase, not "v")
________________________________

SAVING THE RESULTS TO A FILE

There is a "Save" button near the list of previous operations.

If the list of operations is not showing and you don't see this button, 
click the "Options" button and enable "Show the mathematic operation that had been done".
Change the destination folder in the Options if necessary. Then click "Ok".

Click "Save" and enter a file name in the input box which just poped up and here you go.

________________________________

TIPS TYPING FORMULAS

Every command is typeable on the keyboard. 
Typing a symbol is exactely the same as getting it by pressing a button.
So in theory, it's possible to use all the functions without clicking any button, 
even without seeing these buttons at all.
--------------------
Type " pi " to have the value of Pi.
Example:
pi + 1
= 3.1415926536 + 1 = 4.1415926536

--------------------
Type " ^ "  to raise a number to the power of an exponent. 
Example:
4^2
 = 16

Note that   ²   and   ³  are both valid symbols equivalent to  ^2  and  ^3   .

--------------------
Type "V" (UPPERCASE!) to get the square root of a number.
Example:

V16
= 4

"V" must always be written in uppercase, not "v"
Example:

v16
= Error

If you type "V" without parenthesis, only the first number following "V" will be included 
in the "V" square root range.
Example:
4+V16+3
 = 4+4+3 = 11

If you type "V" with parenthesis, the string included in the parenthesis will be 
under the "V" square root range
Example:
4+V(10+6) +2
= 4+V16 + 2 = 4+4+2 = 10

If you type a number before "V", it will give the root power 
of this number (root power limited to two digits).
Example:
4V256
= 4

4+4V256
= 4+4 = 8

4+4V(200+56)
= 4+4V256 = 4+4 = 8

4+4V256+2 
= 4+4+2 = 10

4+4V(200+56) +2
=4+4V(256)+2 = 4+4+2 = 10

NOTE: In the text returning the formula  "V" will be transformed to a an equivalent form of "^(1/2)" 
and "3V" will be transformed to a an equivalent form of "^(1/3)" etc.

NOTE: You can use "pi" as a root power.
Example: piV253614

You can also use "sqr( )" or "^(1/2)" instead of "V"
Example:

sqr(16)+sqr(25) or 16^(1/2)+25^(1/2) or V16+V25
= 4+5 = 9

--------------------
To count  x "is how many percents of" y:

formatpercent(x/y)

or if you want to compare complex operations use

FormatPercent((  x  )/(  y  ))

Why is there double parenthesis in this formula? 
Because if you replace x or y by a complex operation, 
it will give you a wrong result with these additional parenthesis.
Example:
FormatPercent((  25*36  )/(  856-56  ))
but not
FormatPercent(  25*36  /  856-56  )

For the same reason it allows to use convertion units in this formula.
Example:
FormatPercent((  25 m2  )/(  56 sqft  ))
Will count how many percent makes 25 square meters in 56 square feet.

Replace x and y by numbers. Otherwise the value for x and y will be defined 
in the list of customized variables in "my_variables.txt".

--------------------
Works with or without parenthesis:
Note that with custom variables, because they are not numeric, 
need to be between parenthesis anyway. Otherwise their name will melt with the operator name.
If you are confused, always use parenthesis.

Tangent 
Tan(X)

ArcTangent 
Atn(X)

Cosinus 
Cos(X)

Sinus 
Sin(X)

Logarithm 
Log(X)

Returns e (the base of natural logarithms) raised to a power.
Exp(X) 

Examples:

Tan 2
is the same as 
Tan(2)

but

Tan x
will give an error so you must type 
Tan(x)

________________________________

HISTORY

v.0.3
First public release

v.0.4
Added batch processing
The whole script was rewritten for better performance

v.0.5
Added setting dialog for default folder and file name to avoid "file not found" error.

v.0.6
Added show the list of the operations that you have been doing in real time

v.0.7
Added squareroot as "V" as well as "Sqr( )" or "^(1/2)"
Added Pi
Added Help

v.0.8
Added unit convertion
Added ini file for settings

v.0.9
Added temperature convertion

v.1.0
Fixed bug with all units including "in" in their symbol (now, symbol for "inch" is "inch")

v.1.1
Remanipulated the whole code mostly for art sake and performance

v.1.2
Fixed a bug in temperature conversion which appeared in v.1.1. This bug didn't exist in previous verions.
Fixed other minor bug with units conversion.

v.1.3
Not released

v.1.4
New user input interpretation engine
More reliable and flexible code to allow new parameters easily
Square root uses "V" uppercase only so that "v" lowercase can be used into variables.
Debug errors when the operation entered is invalid or when the program cannot interpretate it correctly.

v.1.5
Not released

v.1.6
Not released

v.1.7
Ported to HTA interface
Removed batch processing (will be back in a future versions)

v.1.8
Added use of x and y as variable
Fixed a bug with window repositioning
Interface optimization
Minor code improvements

v.1.9
Added number pad :-)
Added customized units
Added currency convertion
Added demultiplier symbols such as K,M,G and T to avoid large numbers
Added use of white space as thousands separators
Added number formating to reduce the number of decimals
Added vertical and horizontal interface display
Added option to use Gib convention in data storage unit convertions
Added ' and " symbols for foot and inch convertion units.
Fixed potential errors with the use of   ²  and  ³  .
Improved html/css code
Improved and separatedly coded option setting interface
Improved and separatedly coded hard-coded datas loading
Improved code for treating parenthesis with "V" among other minor things

v.2.0
Fixed nez bug with square root sign "V".

v.2.1
Fixed calculation mistake when converting from farenheit to celcius and the number of farenheit degrees was negative
Fixed crash when attempting to convert temperatures. (new error appearing in v.1.9)
Renamed: First zero in the version number removed


v.2.2
Not released

v.2.3
Removed some code from version 2.2, simplified with a new code a little bit
Added "Unit.ini" file. Now units are stored in this file
Added "mil" unit, electronical and electrical units, other unit fractions.
Added dictionary for units, variables, currencies and math operators. Now these things can be added in infinite numbers.
Added automatic menu populating at start up
Added Time and Date operation and some other VBS commands on the interface
Changed how square root is written: 'V or ²V when using the "V" symbol. Can also use sqr() or simply ' .
Modified completely "LoadData.ini" and how the program loads the data
Improved code for Celsius to Fahrenheit conversion


________________________________
TERM OF USE
	Free for non commercial purpose.
This scripts is under copyright protection.

This script is provided freely and without warranty. 
The author can not be held responsible for any damage, mistake, 
financial loss, loss of data or any kind of loss resulting from the direct 
or indirect use of this script or the inability to use it.

Althought I believe the informations generated by this script to be reliable, 
it's impossible to guarantee that they will always be acurate.

		 USE AT YOUR OWN RISK!