Revisions


4.01 (2025-04-21)
New: control SLider
New: SAVE function to save selected variables
New: LOAD function to load selected variables again
Changed: FILE(...ListDirs=...) for system directories
Changed: FILE(...ListFiles=...) for system files
Changed: Sample 6 Photos with HicEst
Changed: X and Y to set controls
Changed: Width and Height to set controls
Fix: minor bugs.

4.00 (2025-01-20)
New: HicEst4 is all new, basis c#, .NET8. Only partially compatible with HicEst3.

3.99 (2019-01-09)
Next Revision HicEst 4.0 will be .NET
New: SORT keyword DELDouble to delete double entries in file sort
New: Color markings for erroneous block-IF statements or incomplete DO-loops
New: OPEN, READ, WRITE with IOstat=ios and ERror=0 return without message, but with ios set
Fix: MatrixExplorer: READ(FIle=fname, Column=0, ...) and fname(row, 0) did not return full row for column = 0

3.91 (2018-12-31)
New: SORT keyword DELDouble delete double entries in file sort}

3.90.1 (2018-05-30)
Fix: bug in "Rename Photos.hic" example}

3.90 (2018-05-14)
New: STRUCT() defines structures of many data types not commonly used in HicEst
New: BITS() handling numeric or string bit and byte patterns
New: Hexadecimal constants input 0x...
New: Index option in OPEN() to generate index file for faster file access
New: WRITE(Messagebox, OnButton=x)... x is label or "subroutine_name"
New: Integer output with 1000s separator (apostrophe)
New: Allow unregistered installation, APPpath becomes EXEpath
Changed: ALIAS() has optional keywords now
Changed: DLL() options support standard call of WINDOWS APis
Fix: Limited number of COM ports was 8, is now 65535.
Fix: Character zero in string output now '.'
Fix: minor bugs}

3.81 (2016-11-04)
New: ALIAS(XYZ, XYZbyte1, A,lenA, ..., C) without lenC to assign remaining memory to C (XYZ array or string)
New: ALIAS(XYZ, XYZbyte1, vectorA,lenA, matrixA,-rows, -columns, ...) allow numeric vector and matrix aliasing
New: Improved inlineLoop management
New: Allow standard Fortran formats in READ/WRITE by prefixing "std" to the Format keyword
New: SORT( )-arrays zeroed at start
New: Break on change of variables (F1 or right click over whitespace)
Changed: smart-type tool tips for strings with trimmed and full length now
Changed: start-up error messages (if any) are bundled now
Fix: Occasional broken name/value tie on internal memory reallocation
Fix: Physical MatrixExplorer column sort extra spaces
Fix: Whole word search if word is at end of string
Fix: Undocumented assignments of the EDIT function
Fix: Missing error message for SORT(FIle=filename, Column=nr, ..) with filename not opened
Fix: enclosure conditions in EDIT(..., InvIdx=...)
Fix: Missing error message for predefined ALIAS-variable or EDIT/Parse-variable
Fix: Multiple optional keyword with_argument, without_argument, with_argument
Fix: InlineLoop op1( EDIT(Text=xy, ...) op2 ...) no-change-EDIT-operations to handle word-strings at current position
Fix: word count in EDIT(..., Word=n, ...)}

3.80 (2016-03-10)
New: Runtime engine with enhanced array and string operations
New: InlineLoop: FromTo OP( from : to )
New: InlineLoop: OP(array_expression]). OP eg + * == MAX MINLOC IEOR etc
New: InlineLoop: OP(string_expression). OP eg // & && etc
New: String Join operators &, &&, &&&, etc to control spaces
New: SWAP operator >< for variables, strings, arrays, or parts of it
New: $R, $C, $1 system $variables in array and string addressing expressions
Changed: Indexed OPEN(file=..., Format=...) real fast now, needed for huge files
New: OPEN(file=..., CompTol=num,..) comparison tolerance for numeric FiLTer=...
New: FileName(rownr, 0) column=0 adresses the full row_nr in MatrixFileIO
New: DLG(CHanGed=var, ...) Optional keyword bit ID of changed variables
New: Option=+512 fast lexical search in MatrixFileIO (INDEX, DLG, SORT,...)
New: EDIT(MatriX=..., APpendTo, Delete=row_nr, DO=repeats)
New: Script specific memory preallocation, font, window size
New: Editor TAB key to toggle matching ( )
Changed: initialization file
Changed: Font management
Changed: Error management
Fix: minor bugs}

3.72 (2014-03-31)
New: SYSTEM(WINdowhandle=wh) returns main_window_handle if wh is 0 on input
New: EDIT(..., DO=n, ..., ENDDO, ..., DO=m, ..., ENDDO) possible
New: EDIT(..., EXTRA="().[]", InvertedIndex=invidx) to include special characters e.g. ().[] in InvIdx
New: EDIT(Text="word1, ... wordN", ID="CONST", InvertedIndexi=InvIdx) to create a constant lexicon word1 to wordN
New: DLG(RADiobutton=vector, ...) vector elements return 0/1, same for CHeckbox.
New: INIT(string, txt1, txt2, ...) single or double quotes in string allowed
New: DLL(...) initial call to the user supplied DLL supplies length of Char1Vector in Real8Vector(1).
New: warning if excessive memory is allocated at start
Fix: blank string changes in MatrixExplorer CSV-files left spurious byte in some cases
Fix: num_result = EDIT(Text=..., $Marks=..., LeXicon=...) could lead to crash with $Marks set
Fix: a few minor bugs}

3.71 (2013-03-14)
New: WRITE(TitleBar, ...) ... added, works with minimized window.
New: DLG( Edit=text, WRap=... ) 0 as argument turns line wrap off, 1 turns it on.
New: EDIT( ..., DO ) ! the loop index can be referred to as $
New: SYSTEM( DIR=..., FIle=fileList, SORt=...) fast fileList sort with selected properties.
New: SYSTEM( FIle=..., FileSize=num)
New: SYSTEM( SetDir=new_dir_name )
New: SYSTEM(WIN=handle, FullWidth=w, FullHeight=h, X0=x, Y0=y )
Changed: nFiles = SYSTEM( DIR=current_dir_name ) works with wildcards
New: SYSTEM( SetFileTime= new_file_time )
Changed: SYSTEM( FileTime= last_write_time )
Fix: SYSTEM( RUN=..., WAIT=1 ) wait for termination
Fix: inconsistencies in windows sizes and positions
Fix: BEEP(leftchannel, rightchannel) unreliable stereo effect
Fix: ALIAS(array1, ...., subarray... ) produced wrong equivalence in some cases}

3.70 (2012-10-08) Whew, what an awful lot of work!
New: InvertedIndex added to EDIT
New: LeXicon with text, numerical and vectorial query added to EDIT
New: The EDIT UpperCase and LowerCase keywords allow Mark1/Mark2 limits
New: The new organization of the InvertedIndex, LeXicon, SortToIndex, SortFromIndex, SortedText, and SortDelDoubles EDIT-keywords makes $inLeXicon obsolete.
New: EDIT(Text=string, Option=2, Count) counts the words in string
New: Alphabetical search option in EDIT and INDEX
New: INDEX() options: count occurences, RegEx, and length_found after RegEx
New: TIME(CPU=1 or 0) or Menu Go/CPU or Alt+M to toggle CPU time on status bar. Works also with long running DOs in EDIT.
New: The MAX, MIN, MAXLOC, MINLOC, and SUM functions work now for strings as well
New: $ array operations work on strings now
New: MatrixExplorer Search/Filter work for column=0 as string Search/Filter over ALL columns
New: MatrixExplorer free-format files work with all non-alphanumerical record separators now instead with CRLF only
New: List/Combo boxes in DLG work with all non-alphanumerical record separators now
Fix: a few minor bugs

3.63.2 (2010-08-01)
New: HicEst is donationware as of now: any donation is rewarded by a key code, if asked for.
New: Block Copy_and_Paste, Delete, Undo, Redo are now possible in script and appendix.
New: OPEN(FIle=..., FiLTer='...', Option=n) to allow word, case, RegEx, etc.
New: OPEN(FIle=..., FiLTer='0:xyz') applies filter to all columns
New: MatrixExplorer/More/Filter Default column == 0: apply filter to all columns
New: HTML-Help got context-sensitive link to RosettaCode
Fix: a few minor bugs

3.63.1 (2010-04-21)
New: EDIT(...., DO) DO without argument terminated on error
New: EDIT(Text=..., Option=4+..., SortedText=...) descending sort
Fix: EDIT(...., SePaRators=num, SorTedtext=...) bug for num=1
Fix: RegEx line-end expressions
Fix: Export multiple matrices of unequal length from DLG

3.63.0 (2010-01-07)
New: RegEx (Regular Expressions) search in EDIT, script, and MatrixExplorer
New: INDEX() options: count occurences, RegEx, and length_found after RegEx
New: OPEN(FIle=..., SEQuential, UNFormatted) stream I/O, faster than BINary option
New: BEEP() generates/plays/stores WAV files instead obsolete system speaker
New: {L=Format.htm#binary, unsigned integer binary formats} ibu1, ibu2, ibu4
New: string(i) returns string character i, same as string(i:i)
New: string(from:to) with to < from returns empty string
Changed: Demo music.hic with circle of fifths: new synthesizer control
Fix: Minor bugs

3.62.3 (2009-02-10)
New: MatrixExplorer file save algorithm faster by a factor of about 1000
Fix: A few minor bugs

3.62.2 (2009-01-18)
New: LEN_TRIM(array)
Fix: File menu selections unreliable for changed directories
Fix: READ(ClipBoard) extra_long_string : string was truncated depending on history
Fix: PictureFormat bug for time/date i/o

3.62.1 (2008-11-20)
New: context sensitive help in HTML is complete now. All files are also contained in the download file and are available offline as well.
New: MatrixExplorer with trackbar column headers for cluster sorting
New: A number of minor improvements
Fix: A few minor bugs

3.62.0 (2008-02-10)
New: context sensitive help in HTML (part I). All files are also contained in the download file and are available offline as well.
New: Installation directories are standard conforming now
New: {L=$SystemVariables.htm, system variables} $CR,$LF,$CRLF,$TAB
New: Concatenation operator "//" for mixed strings and numericals
New: MatrixExplorer got many improvements
New: progress bar and track bar in DLG now also vertical
New: EDIT options Word and WordEnd
New: EDIT arbitrary lexical marks
New: EDIT option SortDelDoubles
New: EDIT option AppendTo
Changed: all dialogs have sysmenu
Changed: arbitrary separators in picture format, radio button titles, menu, listbox, combobox
Fix: length limit for e-mail body from SYSTEM
Fix: AXIS and Panel grid
Fix: parse null strings in EDIT
Fix: EDIT insert trimmed string

3.61.3 (2006-12-10)
New: Demo music.dem with circle of fifths: window design, pixel graphics, mouse i/o, synthesizer control
New: Strings with more than 255 characters can now be edited in context-sensitive help
New: SYSTEM(RUN [=0]) as 1st statement starts autorun script
New: SORT(..., Option=...) to allow case sensitive sort of text columns
New: MatrixExplorer/More/Sort has case checkbox now
Changed: non-printable characters in DLG(Edit=...) show except CHAR(0)
Changed: slightly changed syntax for BEEP(...)
Fix: step out of function after dialog escape
Fix: tool tips for dummy arguments
Fix: prevent overwriting imported constants in help dialogs
Fix: A few minor bugs

3.61.2 (2006-09-30)
New: 1280 byte/item limit removed from MatrixExplorer and WRITE(Message,..) ...
New: WRITE(.., DeCoRation='LI=...') got penup character (multiple polylines in 1 statement)
New: Improved user guidance thru Tutorial
Changed: MatrixExplorer column headers are 2 lines now
Fix: Lost temporary values after multiple XEQ(...) commands in a row could lead to crash
Fix: Invalid authentication for Tutorial.dem
Fix: Missing error message for failed file delete
Fix: File MatrixExplorer.txt missing in setup
Fix: A few minor bugs

3.61.1 (2006-08-29)
Fix: Printing could lead to a frozen main window in certain cases

3.61.0 (2006-08-27)
New: MatrixExplorer is a real editor now for almost all files with recurring record structure. Records need not have constant lengths, mixed binary and formatted elements are possible.
New: MatrixExplorer with full undo/redo
New: Improved (MatrixExplorer) printing
New: Find/Filter in MatrixExplorer or OPEN now with multi-column equal, and, or, not, <, >
New: default separator in OPEN(Matrixfile, Format='...') is ","
New: Zero width format F0.d selects smallest possible field width with d decimals
New: WINDOW(..., ForeGround=handle, ...) to set dialogs or windows to foreground
New: MatrixExplorer background colors vary intensity between rows
New: POP(..., Poptype=-1, ...) deactivates a mouse initiated popup menu
New: context sensitive help for all DLG() optional keywords
New: DLG(...; Button="somefilename.bmp", ...)
New: extended picture format
Changed: CHAR(0) in dialog boxes prints as "." now
Fix: cntl + tab to move thru windows and dialogs
Fix: incorrect time read for direct read with U-format
Fix: Warning if file opened as sequential for MatrixExplorer does not end with CR and/or LF
Fix: Magnify MatrixExplorer numeric cell showed binary representation
Fix: numeric near search in MatrixExplorer column
Fix: INDEX( matrixfile, num_or_txt ) for matrixfile opened and sorted in MatrixExplorer
Fix: Matrixfile with repeat specifier > 1 and space separator
Fix: String edit with illegal numeric format caused MatrixExplorer to crash
Fix: Free Format ='Fw' did not allow exponential constants
Fix: Matrixfile rows with mixed fixed and variable length cells
Fix: Changing Character strings in Help dialog blanked other strings in some cases
Fix: a number of minor bugs

3.60.0 (2005-08-16)
New: DLG(... the new MatrixExplorer ...) got most of our time. We think it was worth the effort.
New: 8-byte integers are supported now with the ib8 format.
New: OPEN() with Format keyword indexes a file now if record lengths are variable
New: SORT() works with indexed files and with MatrixExplorer
New: numerous minor improvements
Fix: more than 50 minor bugs

3.50.1 (2004-09-01)
New: INDEX(...) and EDIT(...) both have the "verify" option now
New: EDIT(..., SPR=seps, Parse=subtext, ...) without Mark assigns next seps-separated word to subtext
New: LINE(..., Symbol=string, ...) will use 1st character of string as plotting symbol
New: APPENDIX( chaptername [, line1, [line2]] ) options line1 and line2
New: ALARM(1) waits for any keyboard or mouse action now
Fix: SYSTEM(RUN=string) works now like expected for a command line string
Fix: DLG(...) will finally have correct width also with proportional fonts
Fix: A few minor bugs

3.50.01 (2004-08-14)
Fix: Lookahead typing in APPENDIX section could cause part of the script to become non-executable

3.50.0 (2004-08-12)
New: Adjustable "on-the-go" help (tooltip or/and status bar)
New: Context sensitive look ahead typing for symbolic names, keywords, functions, options
New: Help window "demo" buttons start directly the appropriate tutorial procedure
New: Improved data management for shorter and faster code
New: $CMD_LINE globally available system variable holds command line string (if any)
New: "hicest.exe myfile.hic RUN=my parameters" starts myfile in run mode
New: WRITE(..., COLumnS=num) ... for automatic multi-column display and print
New: EDIT(..., SortColumn1=num) sort starts at column num (default is 1)
New: Tutorial Demos/Graphics/Contours demo
New: Tutorial Demos/InOut/Colors and multi-columns demo
Fix: LINE(..., BackColor=...) contour plot now without Symbol= setting possible
Fix: LINE(...Y=yvalue, NoZero=1) error when first yvalue was 0
Fix: AXIS(mouse sensitive) and AXIS(mouse ignoring) alternating between mouse clicks
Fix: FUNCTION body without explicit assignment to FUNCTION name
Fix: INDEX(string_without_blanks, ' ') without the trailing blanks option
Fix: EDIT(Text=original, ..., SortedText=sorted) works now for 0 or 1 items in original as well
Fix: Allocation error on menu File/New/Escape

3.41.0 (2004-06-01)
New: REAL [[, PARAMETER] ::] variable=value|array(dim1[,dim2]) [, variable=value|array(dim1[,dim2])]
New: DIMENSION array(n) with n defined in preceding REAL or DATA statement
New: CHARACTER _| with n defined in preceding REAL or DATA statement
New: WRITE(..., Format='UWWW CCYY-MM-DD', ...) ... ! converts e.g. to "Sat 2004-04-24"
New: TIME(..., WeekDay=string, WeekDay=number, ...)
New: AXIS(..., TIME='MM/DD', ...) labels month/day or any other out of "CCYYMMDDHHmmSSsss"
New: LINE(Y=yVect) ! (no X=..), yVect is plotted vs its index
New: string(startposition : ) same as string(startposition : LEN(string)). This is the Fortran substring standard.
Changed: LINE() properties now automatically reset by relevant AXIS() call
Fix: regular AXIS() scaling problem after preceding AXIS(..., Time=..., )
Fix: extra carriage return / line feed characters with tool "new template"

3.40.7 (2004-04-20)
Fix: Occasional memory leak when expanding existing array
Fix: SYSTEM(RUN=FileNameWithSpaces)

3.40.6 (2004-04-03)
New: INIT(...) deletes now "&"//CarriagereturnLinefeed//blanks to allow continuation lines
New: INIT(...) allows arrays for initialization now
New: WRITE(..., FMT=" 123 rightAligned 1.234E+00", ...) i, txt, a ! write picture format supported now
Fix: A few minor bugs
New example: curve and contour digitizer "Click data from image"
Changed example: Water and carbon dioxide (CO2 H2O) thermodynamic equilibra (Peng Robinson)

3.40.5 (2004-03-17)
New: vector = data_file(column_nr) to read a full column of the direct access matrix file "data_file"
New: EDIT(T=text,..., Mark1, ..., Parse=subtext, ...) assigns text(Mark1:current_position) the substring subtext
New: LINE(..., X=xvec, Y=yvec, BackColor=..., ...) paints the area spanned by vectors xvec and yvec
New: LINE(...Text=xyz, ...) xyz may be string or numeric now
New: LINE(...X=x, Y=y, Text=xyz, Draw=type, ...) type: x, y in scale units or as character column, row
New: AXIS(...) improved automatic scale numbering
New: AXIS(..., MouSeAxis=axNr, ...) returns xy-graph index to handle more than 1 mouse sensitive graph
New: DLG(..., MatrixColumn=..., ...) recognizes the vertical bar | as new row placeholder
Changed: WINDOW(...) without WINdowhandle=... option refers to main window now (instead new window)
Fix: SORT(...,Column=...,Groups=N, ..., CLUSter=cvec) subgroup digits now always same as digits of N
Fix: Only popup OR menubar dropdown possible in child window
Fix: POP(..., Owner=window_handle, ...) depended upon currently active window
Fix: Array element as actual parameter could lead to crash
Fix: Find/Mark/Index "word only" at end of search string
Fix: Saving a script.tmp script if more than 2 script_|files exist in current directory
Fix: INTPOL(..., XVector=x, ...) decreasing x
Fix: Missing error message for value = file_matrix(row, col) with col <= 0
Fix: Error return label for optional keyword functions with assigned function result

3.40.4 (2004-01-08)
Fix: USE keyword as only token in a line produced crash
Fix: More efficient flush write buffer
Fix: Newly appended file matrix elements could only be re-read after flush buffer
Fix: Time format U msec rounding error
Fix: Crash on Time format U applied to strings shorter than required in U
Fix: File in script directory other than start directory could not be reopened after system crash
Fix: Trailing comments not color coded

3.40.3 (2003-12-14)
New: SYSTEM(cmd=string) calls command interpreter
New: Shorter scripts will no longer display reminders to register in run mode
New: Current directory is now the script directory (was the start directory)
Fix: New symbolic names in procedures needed recompile on return

3.40.2 (2003-11-11)
Fix: Print was deactivated while running image _|hcc
Fix: Temporary argument to calls may have lost address.

3.40.1 (2003-11-04)
Fix: The focus cell of a disk file spreadsheet moved incorrectly in some cases.
Fix: The disk file spreadsheet height= option allocated 1 line too much in cache.
Fix: Asynchronous alarm subroutines F2...F9 could not be restarted when in a previous call the error handler was activated and the subroutine was not terminated properly.
Fix: Stack reallocation during initial compilation now automatic instead of error message.
Fix: Initial allocations reset now the same as default allocations after setup.

Predecessor versions of HicEst that were never available to the public:
1.x (VISCO, nuclear chemistry process simulation, DOS)
2.x (VISCO-II, chemical engineering Fortran interpreter, DOS)
3.0 - 3.34 (HicEst, General purpose Fortran interpreter, Windows)



©2000-2025
All rights reserved



Georg Petrich
Instant Prototype Computing