![]() | 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) |