gbFreeNotes is an easy to use database application which uses PowerBASIC statements and API to implement all database operations. gbFreeNotes demonstrates that implementing basic database capabilities need not depend on the use of commercial database engines, such as SQL.

Other key features include mutliple views of the data (ListView by name and TreeView by category), freestyle content editing, light encryption and multiple sort options.

Another key feature of gbFreeNotes is that the database consists entirely of text content, which allows a user to open and edit the database using text editing applications of their choice.

Download (v1.2, 220K)


Feature List

gbFreeNotes provides basic operations for viewing and modifying Notes. It also provides features which act on the Note content (event reports, send email, ... etc.).

Using gbFreeNotes

Notes are displayed in two ways - by name (ListView control) and by category (TreeView control). By default, all notes are displayed in both controls. Following a search, both controls contain only those notes containing the search terms. When a session closes, the current list of displayed notes is saved for display in the next session.

The TreeView and ListView selections are synchronized, i.e., they contain the same notes and the same note is selected in each control.

Freestyle editing of notes is allowed in the note Editor (textbox). The first line in the Editor is always the note name (for display in the ListView). The second line is always the note category (for display in the TreeView).

All other note content (lines of text) may be entered in any way the user chooses.

When changes are made in the note Editor (Textbox) to the name or category, the changes show up immediately in the ListView and TreeView controls.

In addition to viewing note content in the note Editor, read-only popup dialogs are also available to view notes. Any number of popup dialogs may be displayed at one time.

Searches are always made against the entire database, regardless of which notes are currently displayed in the ListView/TreeView lists. When a search has completed, only notes matching the search requirements are displayed in the ListView and TreeView controls.

At any time, the display can be refreshed to show all notes in the database.

Only one instance of gbFreeNotes is allowed. If you attempt to open a 2nd instance, the existing instance will become active.

Here's a summary of the primary features available in gbFreeNotes ...

File Actions
Open, New, Save As, Save, Backup, Encryption, File Save/Open History

Note Actions
Edit, New, Delete, View

Search Options
Boolean AND/OR search, Search Term History

Multi-Note Actions
Delete, Copy, Print

Internet Actions
Send Email via user default email client

GUI Elements
ListView (note list, search result list)
TreeView (category view)
Toolbar (actions/settings)
TextBox (built-in note Editor)
Popup Note Dialogs (view-only of individual notes)
Main Screen Search (boolean search of notes) FIND Dialog (boolean searches of notes)

Database Format

Note content is stored as text. There are 5 fields stored in the database, one field per line of text, except for the blog field, which is a multi-line field consisting of lines of text separated by a $CRLF.

The number of allowed characters in each field is given to the right of the field name in the following table:

   Name                         (100)   
   Category                     (35)
   Date Last Modified           (20)
   Display Status               (1)
   Blog                         (5000)

The benefit of an all-text format is that the user can, if the need arises, view/edit the database content in other client software.

Note Editing

The built-in note Editor (textbox) is used to edit notes. When a note is selected in the ListView or TreeView controls, the full note content is displayed in the note Editor.

The user may change the content in any way they chose, with two constraints:

  1. The first line must contain only the note name
  2. The second line must contain only the category.

All other content is at the user's discretion.

Viewing Notes

In addition to viewing content in the note Editor (textbox) popup note viewing dialogs are available, via the toolbar View button, for viewing notes in read-only mode.

Any number of popup View dialogs can be displayed. This is useful when wanting to compare note information, where the notes are far apart in the displays lists.

Use the toolbar View button to open a viewing dialog for the currently selected note. Pressing Enter while in the ListView or TreeView control will also open the current note in a viewing dialog, as will double-clicking on a note


Database notes may be sorted by name by clicking on the ListView column header. Each header click alternates the sort between ascending and descending sorts. A sort direction arrow is provided in the ListView header.

The TreeView is always sorted by category, but names within each category are sorted according to the ListView settings.

Search Options

gbFreeNotes provides two ways to search for notes. As a result of a search, the TreeView and ListView controls will contain lists of matching notes. To return to a listing of all notes in the database, just press the "List All" toolbar button, or use the Ctrl-L shortcut.

Main Screen Search Controls
On the main screen is a combobox control in which search terms may be entered. Pressing enter while in the combobox control, or pressing the Search button next to the combobox will initiate a search.

The combobox dropdown list contains the last 5 terms used in searches.

The type of search (Case Sensitive, Whole Word, or Boolean) may be set using the toolbar Settings button dropdown context menu. See the Settings context menu discussion below for more details.

The setting "Allow AND/OR Search" allows the user to enter "A and B" or "A or B" as a search term, which will override the default Boolean settings.

FIND Dialog
The Find dialog may be opened by pressing the toolbar FIND button or the Find menu item on the TreeView/ListView context menus. F3 and Ctrl-F may also be used to open the Find dialog.

Following a search, the ListView and TreeView controls will list only those notes matching the search. To return to a listing of all notes in the database, just press the "List All" toolbar button, or use the Ctrl-L shortcut.

The FIND dialog opens with the most recent search term displayed. Simply press the Search button to initiate a search. Pressing ENTER in the searchterm term textbox will also initiate a search.

By default, searches are case insensitive. Check the case sensitive check box to make Searches case sensitive.

The search string entered may consist of more than one word. Select the AND/OR/String FIND dialog settings to determine if the entire string is searched for, or if the individual words in the string are searched for as AND (all words must be found for a note to match) or OR (any word must be found for a note to match).

The setting "Allow AND/OR Search" allows the user to enter "A and B" or "A or B" as a search term, which will override the default Boolean settings.


gbFreeNotes allows encryption of the database text file. When the toolbar Encrypt button is pressed, all future Saves of a database will encrypt the database and require the entry of a password by the user.

gbFreeNotes accepts any character string for a password. There's no built-in requirement to provide a "strong" password. It's up to the user to decide the password length, character makeup, etc.

When encryption is applied to a database, the first byte of the database is set to the character Chr$(7). The first byte of an un-encrypted database files is set to the character "-".

When an encrypted database is opened, the user will be asked for a password. The password will be applied to the file, so if the wrong password is entered, the display may contain unreadable content.

gbFreeNotes provides a simple XOR encryption. If you want better security, I highly suggest that you replace the EncryptText() function with a function of your own.


gbFreeNotes provides support for one or more Events (birthdays, holidays, ...) per note. Additionally, a summary report is available which shows the events on the current day, as well as +/- five days to either side of the current date.

To create an event, insert a line with information formatted as follows, where the text "Event:" designated the beginning of an event. The items in the line must be separated by exactly one space.

   Event: Bday 09-12-1951

Events are entered as string pairs, where the first string gives the event name and the second string gives the event date. Only the month/day (09-12 in the example above) is used to generate the Event Report (image above). The Julian date of the event (using the extracted month/day plus the current year) is used to compare against today's date.

Event Name strings may not include spaces. Date strings must be of the MM-DD-YYYY character format, as shown in the example above. gbFreeNotes will accept any event string, but the Event Report will work on with the format just described.


The following features are available from the gbFreeNotes toolbar.


Toolbar Context Menus

The SaveAs and Settings toolbar buttons provide dropdown menus, as follows:

Toolbar File Button

Toolbar Bookmark Button When pressed, the toolbar bookmark button bookmarks the currently selected Note. Its dropdown arrow provides the following context menu selections:

Toolbar Events Button When pressed, the toolbar bookmark button displays a report of all events within +/- 5 days of today. Its dropdown arrow provides the following context menu selections:

  • Display Event Report
    Displays a dialog listing events +/- 5 days from today

    Toolbar Events Button

    Toolbar Actions Button When pressed, the toolbar Actions button closes all open Viewing dialogs. Its dropown arrow provides the following context menu selections:

    Toolbar Settings Button When pressed, the toolbar Settings button puts the gbFreeNotes window on top of all other application windows. Its dropown arrow provides the following context menu selections:

    Toolbar Help Button
    When pressed, the toolbar Help button opens the online Help page. Its dropown arrow provides the following context menu selections:

    ListView/TreeView Context Menus

    The TreeView and ListView controls also provide context menus.

    The TreeView context menu items are:

    The ListView context menu items are:

    TextBox Context Menus
    There are 3 textboxes in use by gbFreeNotes. The note Editor, the search combobox edit box, and the Find dialog textbox. Each has a context menu, with the first four items in this image common to all textbox context menus:

    Additionally, the note Editor has these two additional context menu items.

    Keyboard Shortcuts

    The following key combinations are available to the user to access gbFreeNotes features:

    Other Comments

    Miscellaneous information is provided in this section.

    When gbFreeNotes starts, it restores the previous session content.

    INI File
    gbFreeNotes application settings are saved in an INI file, kept in the same folder as the gbFreeNotes application.

    Misc Comments
    Here are a few other comments regarding the operation of gbFreeNotes.

    Checks are not saved between sessions.

    There is no undo.

    SORT/FIND/View All actions result in the FileChanged flag being set, requiring the user to confirm saving the database when a session is closed.

    Actions causing setting of the FileChanged flag also include, deleting a note, building a fake database, adding a note, editing a note, attaching a file, or removing an attachment.

    The FileChanged note is reset when the database is saved, saved to file, an existing database is reopened or a new database is created.

    Comments and suggestions are welcome!