Download Latest Version StarBasic_Macros_v1.5.zip (91.6 kB)
Email in envelope

Get an email when there's a new version of Open/LibreOffice Basic Macros

Home
Name Modified Size InfoDownloads / Week
readme.md 2022-08-01 5.5 kB
StarBasic_Macros_v1.5.zip 2022-08-01 91.6 kB
StarBasic_Macros_v1.4.zip 2022-07-26 90.3 kB
StarBasic_Macros_v1.3.zip 2022-07-23 91.7 kB
StarBasic_Macros_v1.2.zip 2022-06-29 88.1 kB
StarBasic_Macros_v1.1.zip 2022-06-26 87.9 kB
StarBasic_Macros.zip 2021-05-25 86.7 kB
Totals: 7 Items   541.8 kB 3

The files included in this software collection are published under MIT license:

Copyright (c) 2021-2022 Steffen Illhardt

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Brief

The ZIP archive contains 10 StarBasic modules and libraries for OpenOffice and LibreOffice, each of them is stored in an empty Base database which only serves the purpose of a container for the code. Furthermore this makes it easy to run the test macros which are shipped in the databases, too. Most of the code wraps Windows API functions. The files containing Windows-specific code are tagged with a _W suffix.


Detailed description

  • charset_W.odb containing the WinCharset module: There is only one public function which converts strings between different character sets. A lot of MIME names are supported to avoid forcing you to look up the right codepage ID.

  • exec_stuff_W.odb containing the WinExec module: Execute Windows command lines in a cmd.exe process, or run an application. You may specify the work directory, you may hide the console window, you may run the application synchronously or asynchronously, you can check the return value of the process.

  • ini_stuff_W.odb containing the WinIniFile module: Read data from, and write data to initialization (.ini) files. Strings, values convertible from and to to strings, binary data and array data is supported. Also, functions to serialize and deserialize arrays of strings are implemented.

  • officewindow_W.odb containing the WinOfficeWindow module: Update the appearance of an OpenOffice or a LibreOffice window. Bring a window to top, hide, minimize, maximize, resize it.

  • powerstat_W.odb containing the WinPowerStat class: Get information about the battery status.

  • registry_stuff_W.odb containing the Win32Registry library: Query or update the Windows Registry. Query or update environment variables defined in the Windows Registry.

  • sort_stuff.odb containing the FastSort library: Extensible implementation of Mergesort (stable sorting) and Quicksort (unstable sorting) for arrays, both with the aid of Insertionsort. These are more than 10 times faster than the BubbleSortList function which ships with OO and LO in the Tools library.

  • timer.odb containing the Timer class: Just an auxiliary tool for measuring of time intervals. E.g. to determine the performance of code.

  • u64_workaround.odb containing the U64 module: Actually it doesn't only work around unsigned integers with a size of 64 bits. It's rather an auxiliary tool, aiming for conversions between signed and unsigned integer types (8, 16, 32, 64 bit size) using the rules of Two's Complement.

  • winver_W.odb containing the WinVer module: Determine the current Windows version. Compare it with an expected version.


Change log

  • 2022-08-01 v1.5 Add complementary Quicksort precedures to the existing Mergesort precedures FastSort library
    • Quicksort might have a better performance in case sorting is not required to be stable. Moreover, Quicksort does not obtain additional memory. (Public procedures have now prefix M for Mergesort and Q for Quicksort, respectively.)
    • Furthermore: Procedures for jagged arrays are now more generic. They got an additional parameter to specify the index of the key element.
  • 2022-07-26 v1.4 Remove comparer classes from the FastSort library
    • The overhead of referenced comparer classes is greater than having branching in only one _Less method. The performance gain is ~25%.
  • 2022-07-23 v1.3 Refactor the FastSort library
    • Bugfix for 2D indexing.
    • Update all occurrences of term ...ArrOfArr... to ...JaggedArr....
    • Move indexing for jagged arrays into _Sort_Impl to reduce the number of comparer classes.
    • Add more ...StrLogicalW... sort routines to the public interface.
  • 2022-06-29 v1.2
    • Updae the performance test of sorting algorithms to reflect the screenshots postet in the ScriptForge thread.
  • 2022-06-26 v1.1
    1. Add SortStrLogicalW (so far the first sorting function for Windows only) to FastSort which behaves like sorting by file name in Windows Explorer.
    2. Remove all FreeLibrary calls from the code, the garbage collector will do this more efficiently. (Up to 10% performance gain for some functions.)
    3. Make GetWinVer both easier and even more reliable.
  • 2021-05-25 Initial upload.
Source: readme.md, updated 2022-08-01