What’s New in UniPlot 4.2.0

This page describes the changes made to UniPlot 4.2.0 since version 4.1.5.

New Features

  • Some of the dialog boxes can be resized using the mouse. (See UniScript function DialogBox.)

  • New dialog element: Tree-Control. (See UniScript function DialogBox.)

  • UniScript-Strings are now eight-bit-clean, which means a string in UniScript can now hold binary data. Before this modification a string ended at the first character with the code 0 (see String Constants).

  • Data Browser: The channel data can be displayed in rows or columns (see Browser=>Options).

  • Data Browser: The data records can be sorted in ascending and descending order. (See Browser=>Sort.)

  • Formula Interpreter log file. (See Browser=>Check Formula).

  • New Article in UniPlot-Tools. Two new tools are introduced ncgen.exe and ncdump.exe.

  • New SQLite version 2.8.16 (see Overview SQLite).

  • New File function File=>Merge Documents.

New UniScript Functions

New Functions in UniPlot 4.2.0

GridGetSwapRowCol

GridGetSwapRowCol checks if the channels are displayed in the Browser dialog in columns or rows.

GridReplaceFile

GridReplaceFile replaces the data file displayed in the Browser dialog.

GridSetSwapRowCol

GridSetSwapRowCol sets the display of the data channels in the data browser (channels can be displayed in rows or columns).

LayerMoveDataset

LayerMoveDataset moves datasets to the specified diagram. Datasets can only be moved inside a page. The function can also be used to change the drawing order of datasets.

LayerMoveObjects

LayerMoveObjects moves Objects to the specified diagram. Objects can only be moved inside a page. The function can also be used to change the drawing order of Objects.

OBJGetParentCB

OBJGetParentCB returns the handle of the parent group object.

RBSetMillimeterEx

RBSetMillimeterEx displays a millimeter grid in the rectangle object. The gridlines are drawn with the edge pen.

interpol

The interpol function executes a linear interpolation or cosine interpolation for the given x-coordinates.

mem_alloc

mem_alloc creates a scalar string of the given length.

mem_compare

mem_compare compares two strings or string matrices which may contain 0-characters.

mem_compress

mem_compress compresses a string which may contain 0-characters.

mem_get

mem_get reads bytes from a string and converts the data.

mem_len

mem_len returns the length in bytes of a scalar string or a matrix of strings.

mem_set

mem_set sets the bytes in a string to values of a specified data type.

mem_uncompress

mem_uncompress uncompresses a string that was compressed with mem_compress or zlib.

poly_poly_intersect

poly_poly_intersect returns the intersections of two polylines.

Modified UniScript Functions

Changed Functions in UniPlot 4.2.0

@f{labeldatapoint}

Labels the data points of the original data with its y value.

DialogBox

DialogBox creates a dialog box with static text, edit fields, list boxes, combo boxes, check boxes, a report list (list with multiple columns), a property list box, a group box, tree control and buttons.The dialog box can be configured to be resizeable (see Dialog control |F @ xxx_callback|).

GridGetConfigInfo

GridGetConfigInfo returns a string vector with 6 elements containing the options, displayed in the option dialog box.

GridSetConfigInfo

GridSetConfigInfo sets the data browser configuration.

LayerGetAllDatasets

LayerGetAllDatasets returns the handles of all datasets.

MapLookup

MapLookup uses a hashing algorithm to quickly find the map element with a key that exactly matches the given key.

MapSetAt

MapSetAt means to insert an element in a map. First, the key is looked up. If the key is found, then the corresponding value is changed; otherwise a new key-value pair is created.

RegisterFunction

RegisterFunction registers a function from a dynamic link library (DLL) to the UniScript symbol table. After a function is registered, the function can be called directly by UniScript.

base64_decode

base64_decode decodes a string that had been encoded using the base64_encode function.

base64_encode

base64_encode encodes data into the base64 format

binary_decode

Is replaced by base64_encode.

binary_encode

Is replaced by base64_encode.

fread

fread reads data from a file.

sqlite_open

Removed, use sqlite3_open.

strcode

strcode returns the code values (numbers) of the given string.

strextract

strextract returns a substring of its argument string.

strlen

strlen returns the length of a string in bytes.

Bug Fixes

The following bugs have been fixed:

  • (ID334) The Save As Command in the editor always added the extension .ic. If a file name with a different extension was typed in, e.g. test.txt the file was saved as test.txt.ic. The function has been changed The extension will only be added to the file name if no extension is given.

  • (ID653) The call sqlite_open(“”) caused a memory access violation.

  • (ID660) Scrolling problem: Using the scroll bars white lines were added to the display.

  • (ID676) The Help button did not work in the Browser=>Interpolation dialog box.

  • (ID686) Open Data Browser => Channel-Interpolation => Cancel => Data is missing. Workaround: Reopen Browser.

  • (ID691) NC-Browser: Channels were missing if columns were moved and than a new NC file was selected without closing the dialog box. The error occurred if the new NC file had less channels than the currently open NC file.

  • (ID702) UTX-Filter: If an Excel file in the UTX format contained new line characters (Alt-Enter) inside a cell, e.g in a channel name, the file could not be imported correctly. Newline characters are now removed.

  • (ID707) Dataset copy: The datasets were copied to the clipboard in the order they were selected. Now they are copied to clipboard in the order they are displayed in the diagram. The same is valid for copying drawing objects to clipboard.

  • (ID716) If a dataset was loaded from a file, in which the file name contains a percent character (“%”) the data exchange failed.

  • (ID718) Exchange Datasource: During the data exchange using the Data=>Data Exchange (Page) function all placeholder values which could not be found in the NC file were replaced by an empty string.

  • (ID720) Stacked Diagram: When a y-axis was added to a stacked diagram the grid settings were set to default. Now the settings are set to default only when the grid is created. The y division is set to 1 centimeter when the grid is created.

  • (ID721) The user name could not be removed in Tools=>More Options.

  • (ID734) Akimaspline: The function used an invalid data point to calculate a coefficients. The result was that all points between the second last and the last original data point were set to 0. The error occurred irregular.

  • (ID736) Error in Exchange Data source (dx-Function). See Insert Datasets into a Template. If a data source had more than one option, the table created were incorrect.

    To fix is insert the following line to \uniplot\script\dx-main.ic:

    ssFile = sum(svPath[3:4]) + " {" + ssImportOptions + "}";
    

    before (line 133)

    ssImportOptions = strcat(ssImportOptions, ",");
    

    This bug is fixed in 4.2.0.

  • (ID740) The input of “def test()” in the command window can cause a memory violation error. The function is defined but invalid. Steps to create the bug 1.) Type “def test()” and press enter 2.) type “;” 3.) function test() is invoked => Crash. The bug has been fixed.

  • (ID748) Style file (Tools=>Dataset Style Configuration): Umlauts and other special characters in style names are not handled correctly. 2. Error: If you create a style “abc” the name is displayed as 2D-abc=’name’. The name should have been displayed as name=’2D-abc’. The bug does not occur if at least one attribute is added, e.g bar=’1’. 3. Error: Style file name is not displayed (only 4.2.0 beta 1).

id-1717504