An old, but free xBase for Dos.(1)
Web-Counter: since 1996/09/04.
nanoBase (2) is a Dos program that works essentially as:
a dot command line xBase,
a menu driven xBase,
a xBase program interpreter.
nanoBase 1997 is compiled in two versions: a small one to be used with old computers (x86-16 with 640 Kibyte RAM), and a second one to be used with better computers, at least i286 (or better) with 2 Mibyte RAM.
The dot command line is the first face of nanoBase, the one that appears starting the program normally. It recalls the dot line command of the old xBases.
Please note that nanoBase recognise only expressions (that is: no commands).
Pressing [F10] the nanoBase menu appears.
From this menu the operations are easier than writing all commands on a prompt line, but it is always possible to come back to the dot line to do an operation not available from the menu.
nanoBase is able to record some actions made with the menu and all what is correctly typed from the dot prompt. This may be the begin for a little program (called macro inside nanoBase) that can be executed as it is (ASCII), or compiled into another format, faster to execute.
Macros for nanoBase are made with a reduced set of the Clipper syntax. The statements recognised from nanoBase are:
PROCEDURE procedure_name statements... [RETURN] statements... ENDPROCEDURE
DO PROCEDURE procedure_name BEGIN SEQUENCE statements... [BREAK] statements... END
DO CASE CASE lCondition1 statements... [CASE lCondition2] statements... [OTHERWISE] statements... END
WHILE lCondition statements... [EXIT] statements... [LOOP] statements... END
IF lCondition1 statements... [ELSE] statements... END
the FOR loop is not available (too difficult to implement),
there may be no user defined functions (code blocks may be created instead),
procedure calls cannot transfer variables,
there are only public (global) variables.
Beside these limitations, there are many added functions to the standard language that make the programming easier.
All you need is inside NB.EXE:
the utility to handle manually the data,
the macro compiler,
the macro executor.
nanoBase can handle label (
.LBL) and form (
.FRM) files in the dBaseIII format. Labels and forms may be created and edited inside nanoBase. Beside these old report system there is another way to make a little bit complicated reports without making a complex macro: it is called RPT.
A RPT file is a ASCII file with text mixed with code. The text may contain variables (usually a field or an expression containing fields).
To make a complex report some work is needed, but surely less than the time needed to make a report program.
The main purpose of it was to be able to print text with variables (typically names and addresses) for every record of a particular
.DBF file. Now the RPT system makes something more.
nanoBase contains an integrated text editor not particularly good, but very usefull for RPT files (as the expression insertion is very easy with the use of the [F2] key) and whenever there isn't any other editor there.
nanoBase's documentation si translated also inside the HTF format:
NB.HLP. Pressing [F1], normally, a contextual piece of the manual appears.
Some standard functions have its own internal help, contained inside the
.EXE file. This was made to help programming with nanoBase.
Here is the 1997 edition of nanoBase.
EXE for small computers.
EXE for i286 with more than 2 Mibyte.
Runtime for small computers.
Documentation in many different formats.
Macro programming examples.
Source for version 96.06.16, without mouse support (1996).
Source for version 1997.
Here is the list of known bugs and problems.
Comparison with floating point numbers may fail. It is better to convert numbers into string before comparing them.
Macros may be contained inside ASCII files or a ``compiled''
.DBF file. In the second case, when nanoBase executes the macro, a work area (the last available one) is used, so it should not be closed or the macro execution will be stopped. A dbcloseall() will stop execution of the macro. In substitution of dbcloseall(), DBCLOSE() should be used.
To simplify the macro interpretation, lines such as this:
will generate an error as the interpreter will read only:
nanoBase works good also if you have a screen configuration that permits you to show more than the usual 80 columns and 25 lines, but the library used to handle the mouse is not able to work outside the 80×25 area.
1) This material appeared originally at
http://www.geocities.com/SiliconValley/7737/nanobase.html, in 1997.
2) nanoBase GNU GPL
«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- firstname.lastname@example.org http://informaticalibera.net