PealBook
(29 February 2004)
Download and unzip pbgifzip.exe (178
kB: updated 12/6/97) for images when viewing this file
offline.
Contents
Introduction
PealBook is a purpose-written relational database for keeping
peal records, written in Visual C++ and running under Windows 3.1
or later. Ringers, towers, methods and associations are stored in
the main peal file as keys pointing to other data files for
efficient data storage and easy generation of "league tables" to
find leading ringers etc. Peals matching different search
criteria can be selected.
I use the software to keep my own peal and quarter peal
records, and have also entered all the records of the Cambridge
University Guild (some 2000 peals). I have been Peal Recorder for
the Ancient Society of College Youths since 1985, and have
computerized their peal records back to 1968. I have also used
the software to assist Andrew Craddock in his collection and
analysis of peals published in the Ringing World, and
to check data entered as part of the Felstead Project.
The software has been written primarily for my own use, but
several people have expressed an interest in it (and one or two
actually use it). I have no intention of marketing it as a
product, but am happy for anyone who wishes to use it. I would,
however, like to keep track of who has copies. Since I have
several thousand peals in my database I can also distribute
personalized files of peals to anyone who wishes to start using
the program, possibly saving hours of entry time. Please email
with any requests, or comments on the software.
This document is intended to double as a stand-alone user
guide, and should be updated periodically. I will upload new
versions when I have made significant changes to the code, and
will endeavour to ensure that all future versions are compatible
with existing data files.
Pealbook Versions
Version 3.0 onwards is available as a 32-bit application. As a
result of converting to 32-bit operation some file formats have
been changed. Version 2 files can be loaded into Version 3. The
first time this is done the data files will be converted to a new
format (leaving the existing files unchanged). Files that are
only applicable to Version 3 include '3' in the filetype (ie
.pb3, .qb3, .eq3, .id3, .da3).
Note that when upgrading the pealbook version it is not
necessary to download the latest version of the data files.
Indeed, if new records have been added to these files these
should not be replaced.
Files Available for
Download
pealbook.zip
(192 kB) Version 3.12 updated 29/2/04
pb32zip.exe (292 kB) 32-bit
Version 3.11 updated 23/2/03
pbexezip.exe (263 kB)
16-bit Version 3.02 updated 13/2/98
This is the software (pealbook.exe) and is the only essential
file.
Version 3.12 onwards has been compiled using Visual C++.net and the
Jet database engine. Amongst others, this requires libraries mfc70.dll,
msvcr70.dll, msvcp70.dll, dao360.dll, msjet40.dll. For the latest version of
the Jet service pack see
http://support.microsoft.com/default.aspx?kbid=239114. The other dlls
are available for download at
http://www.dll-files.com/dllindex/.
Version 3.11 requires the libraries mfc42.dll,
msvcp50.dll and msvcrt.dll. If these files are
missing from your system you will need to download and unzip
redist.exe (873 kB)
dated 10/1/00.
pbdatzip.exe (675 kB)
updated 11/1/02
The data files I use for my own (and CUG and ASCY) records -
include towers from Towerbase, methods from the CC collections
and a good selection of ringers/associations. I will extract what
peal records I have that are appropriate for anyone starting to
set up their own records, which, in conjunction with these files
gives a much better starting point than an empty database.
tbgenzip.exe (140 kB)
updated 16/7/98
Software to link Towerbase data with
PealBook.
tbase.xrf (16 kB) updated
16/7/98
Cross-reference to Towerbase
data.
Changes to Latest
Version
Version 3.12 (29.2.04)
Version 3.11 (23.2.03)
- Extra bell(s) field for correct analysis by ringer when back bells not rung
Version 3.10 (4.9.01)
- Change to select Dialog and new Method options
Version 3.09 (19.12.00)
- Change to Composition sort order
Version 3.08 (9.6.00)
Version 3.07
Version 3.06
Version 3.05
Version 3.04
- Changes to output formats
Version 3.02
- Changes to sort order for methods
Version 3.01
- Export to different directories
Version 3.00
- Conversion to 32-bit data (New File Formats)
- Correction to method data in ASCY Format
- Changes to Method Analysis Switch Option
Version 2.10
- Analysis Window recreated after closing
- Windows retain sizes
Version 2.09
- Change of name to PealBook
Version 2.08
- Improvements to handling of multiple buffers
- Julian calender for pre-1752 peals
- Extensions to date input
- Increased maximum no of peals from 16k to 32k
Version 2.07
- Multiple windows show different buffers
Version 2.06
- Import from Record Keeper
Version 2.05
Version 2.04
- Reorganization of menus/buttons
Version 2.03
Version 2.02
- Implementation of Find in Select Window
- Change to SGML Formats
Version 2.01
- Change of sort order for analysis by ringer
- Addition of field names to Table Exports
Data Files
Before describing the program it will be useful to examine the
way that the data are stored. Data that are likely to common to
more than one peal are stored in separate files ("Tables" in
relational database terminology), which are referenced from the
main peal file by a key. There are several reasons for this:
- The data are stored more compactly (two bytes for each
ringer, tower and method in the peal file)
- Global changes can be made by altering a single record
- Analysis is easier when collating keys rather than text
Several peal files may access common data files. If this is the
case then two files can simply be concatenated to generate a file
containing both sets of peals. There is presently no simple means
of merging peal files that use different sets of common data.
Peal files conventionally have the extension .pb3 (or
.qb3 for quarters). Other data files have the extension
.da3 and are as follows:
| assocs |
Associations/Guilds |
| comps |
Compositions (principally method details for multi-method
peals) |
| counts |
Counties (referenced from Towers) |
| methods |
Methods (including multi-methods) |
| persons |
Ringers/Composers |
| saints |
Dedications/Addresses (referenced from Towers) |
| towers |
Towers |
All files contain variable-length records, and along with each
.da3 file is an associated index (.id3) file.
This contains fixed-length records giving information on the
position of each record in the .dat, as well as how they
are sorted, for easy searching (for the technically-inclined
records can be referenced either through a binary-tree structure
or a linked list). It is possible that the structure of the
.id3 might change in the future, but it can always be
reconstructed (almost) from the .da3 file.
Other (not essential) file extensions that PealBook uses
are:
| .eq3 |
Details of which names refer to the same person (eg for
married names) |
| .xrf |
Used for cross-referencing with Towerbase |
Windows
There are currently four types of window:
| Peal List |
A list of peals, with a single line for each. The currently
selected peal is highlighted. |
| Current Peal |
Gives data on the currently selected peal. |
| Select |
Used to select or edit records from a .dat file |
| Analysis |
Analysis of the peals in the Peal List Window |
The operations that can be carried out from each of the
windows are now described. Note that where no description is
given the function is either not implemented or not recommended
(or else I haven't got round to it yet).
Peal List
Navigation through the list of peals is best done using the
video buttons on the toolbar or the cursor keys. These can be
used to move either a record at a time or a page (25 records) at
a time. As each record is selected the Current Peal window is
updated.
The following choices are available on the Peal List menu:
File List PealBuffersAnalyseTowerBase View Window Help








File
Input and output options. Brings up a submenu:
Open
Load Selective
Save
Save As
Combine
Import
More
Export
Export Format
Print
Print Preview
Print Setup
Recent Files
Exit
Open
Loads peal file. It is recommended that this is only used when
first starting PealBook. If you wish to finish with one file and
start working on a new one then close down the program and
restart. Personally I always open files direct from windows by
associating the extensions .pb0 and .qb0 with
pealbook.exe.
Save
Saves all loaded peals (including those not in the current
selection). Note that the .dat and .idx files
are only updated when peals are saved. If the program is exited
without saving, changes to these data files will also be lost.
Save As
Saves to new file name. Only the current selection is saved.
Import
This imports files in one of four formats:
- Old SGML (AGC): Andrew Craddock's proposed format
(.pea)
- New SGML (PABS): My more comprehensive format
(.sgm). This is the same as the export format SGML (Main).
- Felstead (.fpf)
- Record Keeper (.plf)
Export
Writes current buffer to text file.
Export
Format
Selects format for export command. The following choices are
currently available:
| Line |
.prn |
A single line summary |
| RW |
.prn |
Similar to RW peal format |
| QP |
.prn |
Similar to RW quarter peal format |
| ASCY |
.prn |
Similar to ASCY peal book format |
| Guild |
.prn |
Meant for guild records - association suppressed |
| HTML |
.htm |
For inclusion on WWW pages |
| SGML (Short) |
.sgm |
Single line summary with tags |
| SGML
(Main) |
.sgm |
Full details with tags |
| SGML (Keys) |
.sgm |
Key details with tags |
| Peal Table |
.csv |
For subsequent import to relational database |
| Ringer Table |
.csv |
Details of ringers |
| Extras Table |
.csv |
Details of fields such as footnotes |
The last three options produced normalized database tables in
.csv format, with a fixed number of fields on each line
(unlike the internal format of peal records). Used in conjunction
with the Table option from the File menu in the Select Window,
the full database can be exported and reconstructed in a database
tool such as Access.
I will consider any requests for additions to this list.
Exit
The user is prompted to save the peal file if it has been altered
since last saving.
List
Manipulation of the list of peals. Brings up a submenu:
Select
Goto
Clip
Global Edit
Select
This brings up a dialog box allowing peals to be selected that
match a particular criterion, eg including a given ringer, or
between specified dates.
Goto
Allows a date to be specified, and the cursor moved to the peal
nearest that date.
Clip
Copies current peal to the clipboard
Global Edit
Brings up a dialog box for a global edit
of peals in the list
Peal
Manipulate current peal within list.
New
Delete
Transfer
Back
Forward
Page Back
Page Forward
New
Enter new peal details (brings up Dialog Box).
Delete
Delete current peal details.
Transfer
Transfer current peal to buffer 1.
Back
Back one peal.
Forward
Forward one peal.
Page Back
Back 25 peals.
Page Forward
Forward 25 peals.
Buffers
Swap
Rotate
Combine
Clear Hidden
All
Renumber
Analyse
Brings up Dialog Box for peal analysis.
Following analysis, Analysis Window is
displayed.
TowerBase
Manage links with TowerBase data.
Import
Collate
Import
Imports data previously created using Tbgen.
Select tbase.tbd in the File Open dialog.
Collate
Runs through towerbase data requesting details of any unmatched
towers to be entered. This will take a long time if no
tbase.xrf file has already been set up.
Current Peal
Peal Edit Style Window







Peal
Navigation options can be selected using video buttons. Page Back
and Page Forward move five peals at a time.
Back
Forward
Page Back
Page Forward
Clip
Back
Back one peal.
Forward
Forward one peal.
Page Back
Back five peals.
Page Forward
Forward five peals.
Clip
Copy current details to clipboard.
Edit
Main
Extra
Main
Brings up Peal Details Dialog to edit
common fields.
Extra
Brings up Extra Peal Details Diaolog to
edit less common fields.
Style
Choose display format for data. A subset of the formats available
for Export.
Select
File Item
Window










File
Save
Index
Audit
SGML
Table
Item
New
Edit
Delete
Reorder
Back
Forward
Page Back
Page Forward
Find
Find Next
Choose
Cancel
New
Create new record. Brings up appropriate dialog box for type of
record.
Edit
Edit currently highlighted record.
Reorder
Insert currently highlighted record in correct position in list
(only has an effect if record is out of order).
Back
Back one record.
Forward
Forward one record.
Page Back
Back ten records.
Page Forward
Forward ten records.
Delete
Delete currently highlighted record.
Choose
Select the currently highlighted record.
Find
Search for item in file. Brings up Search
for Item Dialog, then sets pointer to new place in file.
Find
Next
Repeat previous Find command (only efffective when searching for
a surname).
Cancel
Abandon current selection.
Analysis
File Options Window



File
Export
Clip
Save As
Export
Clip
Copy to clipboard.
Save As
Options
Equivalence
Threshold
Switch
Equivalence
Associate alternative names for same persons (analysis by ringer
only). Brings up Set Equivalence Dialog.
Threshold
Set threshold for inclusion in alternative method analysis
(analysis by method only). Brings up Analysis Threshold Dialog.
Switch
Displays analysis results in alternative form, if available.
Dialog Boxes
PealBook uses a number of dialog boxes where the user is prompted
for a reference to an entry in one of the .dat files.
Once the OK button is selected, the nearest entry in the file is
found, and theSelect Window displayed with the
appropriate record highlighted. For most cases the required entry
is a string, and the first few characters should be input. The
exceptions to this are:
| assocs |
Enter initials |
| methods |
If multi-methods, enter number |
| persons |
Enter initials |
| saints |
Omit prefix (St, SS, The) |
Dates
For dates, the default is the current date, except when selecting
peals by date (in this case the start date defaults to the
beginning of time, ie 31/12/1600). If the month or year are
omitted these also default to the current value. The century
defaults to the current century unless the year is later than the
current year, when the previous century is used.
A negative integer can also be entered for the date, and is an
offset from today, ie -1 for yesterday.




The length, method, composer and arranger fields are copied
automatically from the current peal:
Name
Anything to reference the composition, eg "(Original)",
"(10-part)" or a reference to a collection. This field follows
the composer's name when the peal is printed, so can also be used
where a composition is a joint effort, eg "and J Smith".
Method Details
This field is intended for the details of methods in a
multi-method peal, and is appended to the number of methods in
brackets.
Figures
This field is not displayed, and may be used to keep the figures
of the composition.









Enter abbreviation for item to move to new place in file.
For Persons, this can be used to select the next record with a
surname beginning with a given string. This is the case when the
initial (upper-case) character of the string matches the initial
letter of the surname of the currently selected record, and the
second character is lower-case. The search proceeds from the
current record.



Place
Enter the name in full, in mixed case. Certain output formats
convert this to upper case.
County
Enter the first few characters for a further lookup. Also used
for country for overseas towers.
Dedication
Enter the first few characters of the dedication, omitting
prefixes such as Cathedral, or St, which will be input in the Dedication Details dialog. Also used
for addresses (for handbell peals).
Bells
Number of bells (leave as zero for handbell locations).
Tenor
Tenor weight, in format cwt-qr-lb (leave as 0-0-0 for handbells).
Grid Ref
OS six-figure reference, with prefix letters, eg TQ112670. (Grid
references are stored as (x-y) coordinates in the notional
2500x2500 km square of the National Grid, with VV000000 in the SW
corner). Include for handbell locations if you know it. I haven't
yet implemented my scheme for allowing Lat & Long for
overseas towers, but then I don't do anything with the grid
reference anyway.
Hide County
Check this box if the county is not normally printed as part of
the tower name, eg where the county is named after the town.
TowerBase
Data
Details cross-referenced from Towerbase.
Linking to Towerbase
Data
TowerBase is a database of towers produced by Andrew Craddock.
There is an option to export the data to a file, and the exported
data can then be massaged and imported into PealBook. This is a
3-stage process:
In TowerBase
First sort the data into an order that is not alphabetical, eg in
order of tenor weight (this will make the eventual index file
flatter, and hence the data will be quicker to access). Export
the data to a file in the PealBook directory using the H
(Hardcopy) option, with the mask
<@>%@<a>%A<b>%B<c>%C<g>%G<i>%I<l>%L<m>%M<n>%N<s>%S<t>%T
This will produce an output file looking something like
this:
<@>3049<a>Lancashire A<b>12<c>Merseyside<g>SJ354894<i>Church of England Cathedral<l>Liverpool<m> 108<n>No Practice<s>Christ<t>82-0-11
<@>1820<a>G of Devonshire Ringers<b>12<c>Devon<g>SX921925<i>Church of England Cathedral<l>Exeter<m> 192<n>1st Monday 1900 & 3rd Saturdays 1800-2000<s>S Peter<t>72-2-2
<@>3111<a>Middlesex C A & London D G<b>12<c>City of London<g>TQ319811<i>Church of England Cathedral<l>London, Cheapside, EC4<m> 176,177<n>No Practice<s>S Paul<t>62-0-0
.
.
.
The %@ field is a key that does not change when the TowerBase
version changes, unlike %#, and it is this that allows your
grabs file to work with different versions.
Tbgen
Tbgen takes the file created above and generates a set of tables
from it, saving the results in a set of files with the extension
.tbd:
tbase.tbd contains the tower name and numerical
information held in the <b>, <g> and <t>
fields, and pointers to the other files, and is indexed via the
<@> key.
The remaining files tb*.tbd each contain the various
different strings that can appear in the corresponding
fields.
In PealBook
Now load PealBook and import the files using the Import option of the Towerbase menu in the Peal
List window. This will generate the corresponding index
files. Towers can then be cross-referenced from PealBook by
choosing Collate. This asks for each
tower in the imported data to be matched, and will take a long
time if you do not already have a tbase.xrf file. You
can download mine above (which goes with the
towers.dat in the sample data).
Your Questions Answered
Send an Email to
with any questions about the software. Here a some queries I have
had - I hope that as this document expands I won't need to answer
as many basic questions from those getting started.
What do the different colours mean in the 'Towers' list
?
You've probably only seen blue. This means that there is a link to Towerbase set up.
The tower database was originally set up using John Baldwin's
"Where's That Tower?", which he let us have on disk when it first
came out. That is the reason that most towers are there, and have
grid references, but other details are missing. I am gradually
filling in the other details when I need them, with the help of
TowerBase. It is also possible (but unlikely) that towers can
appear in red or green. Red means this is really a synonym for
another tower and if referenced should be replaced with the
correct name. Green means that something has gone wrong with the
index file. Both of these can (but shouldn't) occur in any of the
lists.
How do I edit the Methods/Ringers/Towers lists without
entering a new or editing an existing Peal record ?
I usually do it using List Select to open up the window. If you choose
the X button in the Select window when you've
finished, it will cancel the selection.
Using the Find option from the select
window allows you to jump to a new record without having to
scroll all the way through.
What practice to you follow for someone who changes their
name ? Or a tower that changes its bells ? Do you make a new
entry in the Ringers/Towers table, or change the existing one and
affect all earlier records ?
Changing the tower details will not affect the tenor weight in
existing records, so is not a problem.
With people, you can set up equivalent names: following
Analysis by Ringer, choose Equivalence and type in the old and
new initials. In subsequent analyses or selections all equivalent
names are lumped together. It is transitive, so you only need put
in the latest change each time.
What do you do to record the methods in a multi-method peal
?
To enter multi-method peals enter the number of methods in the
Method box (these are sorted in order of number of methods rather
than method name). Enter something in the Composition box when
entering the peal. This brings up a list of compositions - any
that don't match the composer and "method" are greyed out. Method
details can be entered in the Composition dialog box.
Things To Do
- Sort out printing - currently best option is to export data
and use WP to print
- Add scroll bars/select using mouse
Known Problems
- Closing a window may cause the application to crash when
it is later needed - don't do it!
- Errors when some input fields not set may cause program to
crash - when entering large chunks of data save periodically to
avoid loss of data.
Nb choosing Ignore (sometimes several times) will often
recover from error.
- Loading new data (quit and restart program for safety).
- Redrawing only part of peal window has strange effects.
Maximize and reduce to redraw.