News for 2012

Three new file & stream i/o routines added to Code Snippets Database
Three new routines for testing for "watermarks" in files and streams have been added to the Code Snippets database. They are StreamHasWatermark, which checks for a given array of bytes in a stream and two overloaded versions of FileHasWatermark that performs a similar check in files except that watermarks can be specified either as a byte array or as an ANSI string. FileHasWatermark can only be viewed in either CodeSnip 3 or later or the new online database beta. No such restrictions apply to StreamHasWatermark.
22 November 2012
Five new routines added to Code Snippets Database
Five new routines have been added to the System category of the Code Snippets Database. They are GetBiosVendor, GetProcessorIdentifier, GetProcessorName, GetSystemManufacturer and GetSystemProductName. The names are pretty self explanatory. Thanks to Bill Miller for contributing these.
21 November 2012
New Wiki documenting soon to be released Fractions unit
A new documentation wiki has been made available that documents the forthcoming new Fractions unit beta. The yet to be released source code can be viewed on GoogleCode at
29 October 2012
System Information Unit 3.4 released with support for Windows 8
A new version of the System Information Unit has been released in which the TPJOSInfo class has been revised to detect and report Windows 8 and Windows Server 2012. The unit's license has changed to the Mozilla Public License v2.0 instead of v1.1.
24 October 2012
Added two new snippets to the Code Snippets Database
Two new snippets have been added to the "Mathematics" section of the Code Snippets database. The first, "Size", is simply a constructor routine for the Delphi TRL's TSize record. This is viewable in all versions of CodeSnip and the online database. The second is the first advanced record type to be added to the database. It is called "TSizeEx" and is an extended version of TSize with a constructor, equality / inequality operator overloads and assignment compatibility with TSize. This requires CodeSnip 4.0 or later to be viewed. (The preview, beta or release candidates won't display it.) It can't be displayed by the original online database, but can be seen in the new "Take 2" beta at
20 October 2012
The blog has had a makeover
The blog has been renamed as "DelphiDabbler's Blog" (original eh?) and has had a makeover to give it a cleaner appearance. The layout is very simple and hopefully quiet with very little getting in the way of content. Comments appreciated.
19 October 2012
Minor re-organisation of the Code Snippets database
The "Text Encoding" category of the Code Snippets database has been renamed to "Encoding" and the IsUnicodeStream and IsUnicodeFile routines have been moved to "Encoding" from "File and Stream I/O".
18 October 2012
Early beta of new online Code Snippets Database viewer released
v0.1 beta of a new HTML5 / JavaScript / CSS3 driven web app called "Code Snippets Database - Take 2" has been released. This app is planned to supersede the now rather dated Code Snippets Database ( Don't hold your breath - there's a lot of work to do! It's really a proof of concept and not all the functionality works yet - read the welcome page that is shown on start-up. Please do try it out - I'd like some feedback and suggestions please! The app uses an early alpha version of a new REST API to the Code Snippets database, of which more later. The source code of the client app is released under the MIT license.
18 October 2012
Seven new Array functions added to Code Snippets Database
Seven new routines for handling byte arrays have been added to the Code Snippets database. The first three are displayable in all versions of CodeSnip and in the online database. They are ByteArraysSameStart (compares first N bytes of two byte arrays), IndexOfByte (index of first occurrence of a byte in an array) and LastIndexOfByte (index of last occurrence a byte in an array). The last four, which require CodeSnip 3 or 4, deal with inserting and removing bytes at the start and end of the array: UnShiftByteArray, ShiftByteArray, PushByteArray, PopByteArray.
15 October 2012
Four new string management snippets added to Code Snippets Database
Four new functions have been added to the String Management (A..M) category of the Code Snippets Database, all of which delete sub-strings of string: DelStr deletes first occurrence of a sub-string from a string while DelAllStr deletes all occurrences. DelText and DelAllText are similar except that they ignore case when matching sub-strings.
13 October 2012
The "String Management" category of the Code Snippets Database has been divided
The string management category of the Code Snippets Database is nearing the capacity of the file format used to store it. So much so that no more new snippets can be added to the category without crashing the CodeSnip program. To make room for new snippets the category has been split into two: "String Management (A..M)" and "String Management (N..Z)". Not ideal but there's no obvious way to fix the problem that won't break CodeSnip. I never expected the database to get this big when it was first designed back in 2005!
13 October 2012
What's new in CodeSnip 4
If you'd like to see what's new in CodeSnip 4 check out this blog post that gives an overview of the new features along with some screen-shots of the revised interface.
12 October 2012