              **************************************
                         M E M O     1.00

                (c) Copyright Matthias Lenski 2000
                
              **************************************

** Hinweis: Lesen Sie Liesmich.txt als Deutsche Version dieser Anleitung **              

Welcome to Memo, also called the "birthday program" ;-) 
This README is a user manual based on examples. Its contents are: 

1. WHAT FOR: This program reminds you of birthdays
2. QUICKSTART: How it works
   a) starting MEMO.EXE using your autostart-folder
   b) editing MEMO.TXT: Put in Names and birthdays, seperated by commas
3. ADJUSTMENT: How to adjust the program
   a) basic adjustment (which icon etc.)
   b) adjustment for other purposes than birthdays
   c) language settings
4. EPILOGUE

Requirements: You must have Windows 95 or better. The program is freeware.


1.) WHAT FOR
=======================================
Everyone can recall some birthdays, but we miss some every year. 
What could be more obvious than giving the PC the job of reminding a couple
of days in advance? Now, there were some freeware or shareware programs 
who did exactly this. The smallest was some hundred kilobytes in size but
didn't work with a high resolution monitor. Other programs were resident
and occupied memory after termination. Therefore I wrote my own program
last weekend. This is only 20 kilobytes in size, it is fast, non-resident
and wery widely adjustable. Adjustment abilities allow its use for other
purposes than birthdays (see section 3. b).


2.) QUICKSTART: How it works
=======================================
The proram consists of two files, which must be held in the same folder on
your harddisk. The files are MEMO.EXE and MEMO.TXT. The first one, MEMO.EXE
is the program itself. Running the program requires but two steps:


a) starting MEMO.EXE from your autostart-folder

You can start MEMO.EXE by double-clicking on it any time, and you will get
today's birthday messages (to find MEMO.EXE from your desktop you might
want to use the search-function of Windows 95). 

Of course, it makes more sense to have MEMO.EXE running once you turn on
your computer. To achieve this, just create a link to MEMO.EXE and put it 
into your autostart-folder. For more detailed instructions see the Windows
95/98 user manual. Normally I'd do it by right-clicking on the proram and
dragging it onto the destination folder (in this case, the autostart-folder).
A small menu will appear where you can choose to create a link. 


b) editing MEMO.TXT: Put in Names and birthdays, seperated by commas

The second file, MEMO.TXT is a normal (ASCII) text file. It contains all 
the birthdays. Every line is a record which consists of the name of the 
person and his or her birthday, seperated by a comma, for example: 

Alfred Mustermann, 01-02-1988

Put such a line into MEMO.TXT to have Memo remind you of the birthday of 
Alfred as soon as it's the 1st of February. The zeros before 2 and 1 can 
be left out.

*************************************************************************
Note that Memo, as a German program, usually expects the day first and the 
month second. You can switch that off by making: #Default=1 your first line
*************************************************************************

The year can be a two-digit number, in this case 1900 (!) will be added.
That's because still most birthdays are located in the 20th century, example:

Alfred Mustermann, 1-2-88

That will work just as well. Only keep in mind, that no unwanted commas do
appear. The following will also make the computer remind you the 1st Feb:

Alfred, who is quite a cool guy, 1-2-1988

But the text "who is quite a cool guy" will be left out.

So just put all the birthdays of your friends and relatives into MEMO.TXT 
to be reminded. A simple double-click onto MEMO.TXT should activate your
editor, to get started (to find MEMO.TXT you might want to use the 
search-function of Windows 95 again). 



*****************************************************************************
** So, that's it. Now you know how to make use of this program. 
** The file MEMO.TXT doesn't need to contain anything except the birthdays.
** The only thing I strongly recommend is the headline (#Default=1) for USA
*****************************************************************************



3. ADJUSTMENT: How to adjust the program
=======================================

a) Basic adjustment (which icon etc.)

So far, so good. A simple program, that summons a simple message box and
uses a text file to fill it. But MEMO allows some little adjustments,
which make it flexible for arbitrary remindings. 

All of these adjustments are done by setting certain "environment-variables". 
To make it easy this is done directly in the text file MEMO.TXT (and not
in the Windows registry). 

Every line, which begins with '#', is NOT a birthday line, but a 
adjustment line. All of these lines can be left out. 

The following example switches the output to English instead of German:

#Default=1

What happens to your birthdays? Switching to English does not ony affect
the language but also chooses the American date format. After you choose 
Default 1, the program expects the FIRST number be the month and the second 
be the day.

So now after inserting #Default=1, Alfred Mustermann's birthday is the
2nd of January! This can be switched off, if you want, see below...

All other environment variables begin with "Env" for "environment", example:

#EnvFirst=0     

switches again to German notation (first: month, second: day), but leaves
the language alone. The message text ("Tomorrow Alfred will be 10 Years old")
can be freely varied. I will cover this subject later on, because it's a bit
more complicated.

All environment variables can be written in uppercase or lowercase letters,
for example: 
#envfirst or #ENVFIRST or #EnVfIrSt, it's just the same for the program.

Now, in short, the basic settings to adjust the appearance of the program:

#EnvToday=01-02-2000

forces the program to assume, that today is the 1st of February 2000 (or, 
with Default=1 the second of January). By using EnvToday you can override 
your system's date and time which will otherwise be used. This is very
useful to test the program. Just try one of your birthdays in MEMO.TXT
as "EnvToday"...

#EnvLink=c:\doc\mydata.txt

makes the program search for more birthdays in another text file, you 
created. In this case, assume, that you made a file named MYDATA.TXT.
Note: once MEMO.TXT will be finished, MYDATA.TXT is started (not earlier).

In this way you can store your birthday file in another folder than the
MEMO-folder. To achieve this, put a suitable (=birthday) text file into 
the folder of your choice and put ony one line into MEMO.TXT pointing 
to your text file (#EnvLink=...).

#EnvAdv=3
tells the program, how many days in advance you'd like to be reminded. 
The default value is 4 days. The program will use this, if you don't
choose a different setting. (#EnvAdv=4 is therefore superflous)

#EnvIcon=64
adjusts which icon shall appear in the message box, for example 64 for
an information symbol of 48 for a warning sign. You might also choose
262144 for a box without an icon that is always in the foreground...

#EnvMax=10
sets the maximum of message boxes the program may open. The default
value is 10. After the tenth message box the program stops, no matter
how many more people have their birthday today. This setting avoids
excesses which will accur if you set #EnvAdv=365... (did you try this?)


b) adjustment for other purposes than birthdays
Let's now discuss the last 4 environment variables, which affect the
message in the box itself. They are a bit more complicated, giving you
the freedom to produce even unusual reminder messages.

Therefore, a simple example: Besides the birthday messages, which I still
whish to receive, I want to add a TO-DO-list with 3 entries. 
Going to the dentist, Renting a room and Writing a letter are these errands.

I add to my MEMO.TXT file the following lines, appending it AFTER all the
birthday data: 

Go to the dentist, 1-2-2000
Rent a room, 1-2-2000
Write a letter, 1-2-2000

This is not enough, otherwise the program will remind me in February, that
"Go to the dentist" has its Birthday (and it will be zero years old...).
Before the TO-DO-data (and after the birthdays) I insert the following line:

#EnvMsg=To do,: ,

The strange commas indicate, that at the places of the commas something else
is to be inserted. The program obeys the following rule: It starts by writing
the message text (EnvMsg) into the message box, until the first comma occurs.
Then it continues with the first word of the data line (Go to the dentist)
until a comma occurs THERE. Then it continues with the message text an so on.

In our example we will get the following output:
To doGo to the dentist: (usw.)

That looks still ugly. The program can insert two other texts which cause
the trouble: first it can insert the number of days to go ("today", 
"tomorrow", "in 3 days"...), second it can insert how many years ago the date 
was, enabling itself to tell you it's someone's "66th" birthday.

The place where these texts are inserted is set by the environment variables
#EnvWPos        and
#EnvAPos        
If you set one of these to zero, its text will be omitted. 

Therefore we set 
#EnvAPos=0
to omit the "age" of the dentist date (0 years).

Finally we set:
#EnvWPos=2
telling the program, that as the second part of our text (wich means:
after the first comma in the message text) it shall insert the 
"when"-text ("today", "tomorrow", ...). The output will be: 
To do today: Go to the dentist

The last environment variable to be discussed determines how the program
calls the "when"-text ("today", "tomorrow", ...):

#EnvWhen=Soon ,Today ,Tomorrow ,The day after tomorrow 


c) language settings

Because every single text can be freely varied, the program can be
adjusted to any language. There is a shortcut to adjust the program
to English using the setting "#Default=1". This resembles the following
single parameters:

#EnvMsg =,, will be , years old!
#EnvWhen=Soon ,Today ,Tomorrow ,The day after tomorrow 
#EnvWPos=2
#EnvAPos=6
#EnvFirst=1

For German language the whole thing looks like this (#Default=0):

#EnvMsg=, wird , Jahre alt!
#EnvWhen=bald , heute , morgen , bermorgen , in 3 Tagen 
#EnvWPos=4
#EnvAPos=5
#EnvFirst=0

Please keep in mind, that all of these settings come into force only
as soon as thy occur in MEMO.TXT. That means that you can first have
birthdays being announced in German, followed by "Default=1" and 
further birthdays in American notation.


4. EPILOGUE
=======================================

I call this "the birthday program" not only because it reminds me
of birthdays but I also wrote it on my birthday. 
The program is freeware, but I'll welcome any suggestions or 
comments and (especially) foreign language message texts!

My e-mail-address is: M.Lenski@ginko.de

If someone sends me message texts for further languages, I'll adopt 
them in future versions of the program. 
The program was written using the freeware C-compiler LCC. 
Thanks to the compiler's authors, C.Fraser, D.Hanson, Jacob Navia!

