History — Version 20.0

# Version 20.0

July 21, 2020

## New General Features

- Added an ability to do partial matches ( Key1 contains Key2, Key1 begins with Key2, and Key1 ends with Key2) and split string matches on the Join CSV command.

- Added a functionality to append (rather than replace) a filter to the Filter with Selection or Word at Cursor, Filter without Selection or Word at Cursor, Filter in Column, and Filter Out in Column commands while pressing the SHIFT key.

- Added the file position at cursor to the dialog box displayed on the Character Code Value command.

- Added the Combine Lines command, which is useful for "nested" CSV operations, along with the Split Column and Join CSV commands.

- Greatly improved the speed of opening very large files in Binary (Hexadecimal View), the Batch Replace in Files, and Join CSV commands by using multi-threaded code.

### Test results:

| v19.9 | v20.0 | Comparison
--- | --- | --- | ---
Open a very large file in Binary (Hexadecimal View) *1 | 78.0 seconds | 1.84 seconds | 42.4 times faster
Batch Replace in Files (Save Backups) *2 | 114 seconds | 0.359 seconds | 318 times faster
Batch Replace in Files (Keep Modified Files Open) *2 | 9.38 seconds | 1.30 seconds | 7.22 times faster
Join CSV (whole string match) *3 | 5.39 seconds | 2.11 seconds | 2.55 times faster

*1 32.1 GB random data file, 32 bytes per line (default format).

*2 781 files, total 1.30 MB, 100 replace strings, total 470,346 replacements.

*3 two CSV files (122MB and 125 MB, 5,984,669 lines each).

All: Windows 10 (64-bit), Core i9-9900K, 16 threads, 32GB RAM, 2TB SSD.

## New Options

- Added the Conditions drop-down list box, Separator text box, and Limit splits check box and text box to the Join CSV dialog box.

- Added the Combine Lines dialog box.

- Added the Columns list box to the Split Column dialog box.

- Added the Import and Export buttons back to Batch Find/Replace (in Files) dialog boxes, and added the > button to show the context menu to Batch Find/Replace (in Files) and Advanced Filter dialog boxes. Removed the Add and Delete buttons from Batch Find/Replace (in Files) dialog boxes.

- Added the File Position at Cursor check box to the Status list in the Status page of the Customize dialog box.

## New Commands

- Combine Lines

## Plug-in API New Features

- Added JOIN_FLAG_CONTAIN, JOIN_FLAG_START_WITH, JOIN_FLAG_END_WITH, JOIN_FLAG_MATCH_SPLIT_BOTH, JOIN_FLAG_MATCH_SPLIT_ONE, and JOIN_FLAG_SWAP flags to the JOIN_INFO structure and Editor_Join inline function.

- Added the MANAGE_DUPLICATES_COMBINE flag, and nNumOfColumnsToCombine, anColumnsToCombine, pszInsert, nCombineFlags, pszLocale fields to the MANAGE_DUPLICATES_INFO structure.

- Added the MANAGE_DUPLICATES_COMBINE flag, and nNumOfColumnsToCombine, anColumnsToCombine, pszInsert, nCombineFlags, pszLocale parameters to the Editor_ManageDuplicates inline function.

- Revised the SPLIT_COLUMN_INFO structure and Editor_SplitColumn inline function.

- Added the BATCH_GREP_INFO structure and the Editor_BatchFindInFiles and Editor_BatchReplaceInFiles inline functions.

- Added the nTotalCount field to the GREP_INFO_EX structure.

## Macro New Features

- Added eeJoinContain, eeJoinStartWith, eeJoinEndWith, eeJoinMatchSplitBoth, eeJoinMatchSplitOne, and eeJoinSwap flags, and strSeparator and nLimit parameters to the Join method of the Editor object.

- Added the CombineLines method to the Document object.

- Revised the SplitColumn method of the Document object.

- Added the Clear method to the Filters collection.

- Added the BatchFindInFiles and BatchReplaceInFiles methods to the Editor object.

- Added return values to the FindInFiles and ReplaceInFiles methods of the Editor object.