CalcIt v10.4
"Make it... Simple, Free, Effective"

Last update: 5/10/2008

Overview Screen shots Last Update Download User Feedback Documentation

Last Update

At this moment I am working in the next version of the program. In the meantime if a bug is found in the current version then an update will be announced here. So check regularly for updates.


  1. In case of update from a previous version DO NOT overwrite calcit.cdt file with the one supplied with the new version. Everything is saved there and if you have create your own codes will loose them for ever! Rename your calcit.cdt for a while to see the demonstration code in the provided sample. Also is a good practice to make frequent backups of this file (as usually we do). Also have in mind that CalcIt uses (and creates if not present) the calcit.cdt always in its installation directory.

  2. If you wish to import any new/updated sample/library code to your own calcit.cdt file use the provided utility UpdateCalcItFile.exe. For more information see download page.

Date Comment


  1. ctrTAB control added. Is used in place of ctrTABPAGE control in cases where every tab page contains the same controls. Is easier to handle and setup and less resource intensive.
  2. + and += operator are now used exclusively for numeric operations.
  3. Bug fixes.


  1. elseif added to if control statement.
  2. Find&Replace ability added to the code editor.
  3. Up to 9 bookmarks can be set in a code to easy navigate through it, especially when is big.
  4. In "Create Application File" (that is an exe) form is now possible to set a specific character set for the resulting file.
  5. Some rearrangement of Windows wrapper libraries. Some of them merged under one Class, named CWin.
  6. Some bug fixes.


  1. FieldDel command added. Deletes a number o fields from a multi-field value.
  2. Bug fixes.


  1. Delete and Insert commands can now use negative numbers in character position parameter. Negative numbers position in a string in the reverse order. -1 points the last character in the string. The same with character access syntax. For example a[-1] accesses for read and write the last character in a string. The same when this syntax is applied in delimited text syntax: a#(1,' ')[-1].
  2. Bug fixes.


  1. Debugger window is improved. Also you can select text, copy and paste to watch list.
  2. MERGE command added. Returns a sorted array from two other sorted arrays, using the fastest and less recourse intensive way.
  3. EXEPATH added. Returns the directory path of CalcIt executables.
  4. Negative indexes, in delimited text syntax, now work the same way as array indexes. Index -1 points to the last delimited part in a delimited value.
  5. Minor bug fixes.


  1. Because of the additions of the previous version, those with array extensions, there is a need for some things to change at syntax level even if this breaks existing code. Now delimited text syntax starts with the symbol #. For example a#(4) accesses the fourth delimited text part of a using the default delimiter. Now the direct use of parentheses (with an index enclosed)  means always array access, which is more consistent. For example a(4), where a is a simple variable, means the fourth array element if a was extended to contain an array. Symbol # is not any more used to denote the last array element. It is reserved for delimited text syntax, as said before. Now a negative array index is permitted and accesses the array in its reverse order. If ar is an array variable ar(-1) accesses the last element, and so on. As regards the previous version (10.2) symbol @ is used now only as a prefix to denote that the simple variable, array element or field, following it, has to be handled like an array (as a whole). Symbol @ is not used any more as a suffix to access individual array elements in array extensions. With these necessary syntax changes is avoided the confusion between array element syntax and delimited text syntax and is enhanced syntax simplicity and consistency.
  2. REVERSE command added. Returns an array with the reverse order of elements of the one passed to this command.


  1. Syntax Check button added for Applications and Scratchpad
  2. Because of problems especially with wireless keyboards (like mine) the group selection in Form Designer is changed a bit. Now there is a check box that enters in "group mode". After the selection of controls in the group the user has to uncheck the checkbox.
  3. DelDir, MemFill, PrintBuf commands added.
  4. Shorter and simpler syntax for arrays added. Now, for variables that already are declared as arrays, the assignment operator can be used. e.g. a:=Any array expression, equivalent to set a=Any array expression.
  5. Now every normal variable, array element or field can be extended to contain an array. Symbol @ is used to inform the compiler for this extension (as the dot symbol is used to create multi-field values). To access array elements the @ is used as a suffix. e.g a@(5):=1000. When the variable has to participate in array expressions or to receive the contents of an array expression etc, symbol @ is used as a suffix. e.g @a is used the same way as any array variable. This new feature permits to create arrays with elements that contain arrays or elements that contain fields, some of them containing arrays. This way very complex data structures can be created in any combination or hierarchy. PrintArr command can print and XWrite/XRead can save and restore such data. Since a normal variable can contain an array, functions can return arrays or complex data hierarchies containing arrays and fields in any combination.
  6. Now when copying multi-field variables or arrays from one variable to another, or passing (by value) parameters in functions, the data is not really copied. It is copied only a reference to the data, which is a very fast operation. So at any point many variables can point to the same data. When one of these variables tries to modify the data only then a copy takes place. This makes the handling of multi-field values and arrays much faster.
  7. arr command added for array expressions. arr returns an array with a specific number of array elements. e.g set ar=arr(100). This is equivalent to set ar(100).
  8. PrintArr changed a bit as regards the formatting optional parameter.
  9. XRead doesn't use any more Microsoft XML parser to read files. It is used a specially written parser code which is very fast and uses a minimum of system resources. Now the text file generated by XWrite is not in UTF8 format but ANSI.
  10. Bug fixes.