              **************************************
                         M E M O     1.5

                (c) Copyright Matthias Lenski 2000

              **************************************

** Note: See README.TXT to read the ENGLISH VERSION of this manual **

Herzlich willkommen zu Memo, auch genannt "das Geburtstagsprogramm" ;-)
In dieser README-Datei finden Sie eine Anleitung an Beispielen, Inhalt:

1. WOZU DAS PROGRAMM: 
	Erinnerung an Geburtstage
2. QUICKSTART: Wie es funktioniert
	a) MEMO.EXE im Autostart-Ordner ablegen
	b) Land und Notation einstellen
	c) Geburtstage anlegen
3. ANPASSEN: Wie man es dressiert
	a) Andere Termine als Geburtstage anlegen
	b) Weitere Programmeinstellungen
	c) Feintuning
4. Abspann, Aenderungen gegenueber der Vorversion

Systemvoraussetzung: Laeuft auf PCs ab Windows 95. Das Programm ist Freeware.



1.) WOZU DAS PROGRAMM
=======================================
Einige Geburtstage hat jeder im Kopf, aber einige vergisst man jedes Jahr.
Was lag also naeher, als sich vom PC ein paar Tage im voraus erinnern zu
lassen? Nun gab es einige Programme als Free- oder Shareware, die genau
das taten. Das kleinste war ein paar hundert Kilobyte gross und verzerrte
seine Schrift, wenn es auf meinem Monitor in hoher Aufloesung lief. Die
anderen Freewareprogramme liefen resident und belegten Speicher. Also habe
ich mich an einem Wochenende hingesetzt und ein eigenes programmiert, das 
nur 20 Kilobyte gross, schnell, nicht-resident und anpassbar ist. 
Die Anpassbarkeit erlaubt den Einsatz fuer andere Zwecke, siehe unten.


2.) QUICKSTART: Wie es funktioniert
=======================================
Das Programm besteht aus zwei Dateien, die im selben Ordner gehalten werden
muessen. Diese sind MEMO.EXE und MEMO.TXT. Die erste, MEMO.EXE, ist das 
Programm selbst. Um das Programm in Betrieb zu nehmen, bedarf es nur dreier
Schritte:


a) Das Programm MEMO.EXE im Autostart-Ordner ablegen

Damit Sie bei jedem Systemstart an aktuelle Termine erinnert werden knnen,
mssen Sie eine Verknpfung mit Memo im Autostart-Ordner (im Startmen) 
anlegen. Wie das geht, sollte in der Anleitung zum Betriebssystem stehen. 

Fr alle Flle hier eine Kurzanleitung: 

ffnen Sie zunchst den Autostart-Ordner. Hierzu klicken Sie mit der 
RECHTEN Maustaste auf den Start-Button und weiter auf "ffnen". Im nun
erscheinenden Fenster Doppelklick auf "Programme" und dann auf "Autostart".

Suchen Sie nun MEMO.EXE durch Linksklick auf den Start-Button und weiter 
auf "Suchen -> Dateien/Ordner". Geben Sie nun als Name MEMO.EXE ein und 
klicken Sie auf "Starten". 

Klicken Sie schlielich auf die erscheinende Datei MEMO.EXE, halten Sie die
Taste fest und "schieben" Memo auf das vorhin geffnete Fenster "Autostart".


b) Land und Notation einstellen

Die zweite Datei, MEMO.TXT, enthlt alle Geburtstage und 
Programmeinstellungen. Sie ist eine gewoehnliche Textdatei. 

ffnen Sie einmal diese Textdatei. Hierzu knnen Sie sie, wie oben fr 
MEMO.EXE beschrieben, suchen. Klicken Sie einfach noch einmal auf den 
Start-Button und Suchen->Dateien/Ordner, geben Memo.txt ein und klicken
auf Starten. Danach knnen Sie mit Doppelklick auf Memo.txt dieses ffnen.

An dieser Stelle knnen Sie alle Programmeinstellungen eingeben und 
smtliche Termine und Geburtstage aufnehmen. Zeilen, die mit "#" beginnen,
nehmen Einstellungen vor, alles andere sind Termine. 

Die Datei enthlt bereits solche Zeilen, von denen #Default wichtig ist.
Alles andere sollten Sie einstweilen lschen, da alle Einstellungen auch 
weggelassen werden knnen. Es gelten dann im brigen Standardwerte.

#Default stellt fr ein bestimmtes Land die Sprache und Notation ein, da
manche Lnder den Monat, andere den Tag zuerst schreiben. Die korrekten
Einstellungen fr Deutschland schaltet #Default=2 ein. Weiter untersttzt
wird 1=USA, 3=Frankreich und 4=Spanien. Vlliges Weglassen aktiviert 
eine internationale Einstellung (englische Sprache, europische Notation).


c) Geburtstage anlegen

Schlielich mssen Sie noch die Geburtstage oder Termine aufnehmen, an 
die Sie erinnert werden wollen. Jede Zeile, die nicht mit "#" beginnt, ist 
eine Terminzeile.

Geburtstage bestehen schlicht aus dem Namen der betreffenden Person,
gefolgt von dem Geburtsdatum, beides durch Komma getrennt, zB:

Alfred Mustermann, 01.02.1988

Eine solche Zeile in der Datei MEMO.TXT veranlasst Memo, am 1.Februar an den 
Geburtstag des besagten Herrn zu erinnern. Statt Punkten ('.') knnen auch
andere Trennzeichen verwendet werden, z.B. '-': 01-02-1988.

Die Jahreszahl kann zweistellig sein, und wird dann mit 1900 (!) ergaenzt.
Schliesslich liegen die meisten Geburtstage noch im 20. Jahrhundert, Bsp:

Alfred Mustermann, 1.2.88

Das waere auch zulaessig. Wie soeben gesehen, knnen vorlaufende Nullen (01)
weggelassen werden. 

Tragen Sie also einfach die Geburtstage derjenigen Leute, an die sie erinnert
werden wollen, in MEMO.TXT ein. Ein einfacher Doppelklick auf MEMO.TXT sollte
hierfuer den Editor starten (um MEMO.TXT anklicken zu koennen, kann man es
suchen, s.o.).



*****************************************************************************
** Mehr muss man nicht wissen, um das Programm sinnvoll zu nutzen.       
** Die Datei MEMO.TXT braucht nichts zu enthalten ausser Geburtstagsdaten.
** Empfohlen wird lediglich die Kopfzeile (#Default=...)
*****************************************************************************



3.) ANPASSEN: Wie man es dressiert
=======================================


a) Andere Termine als Geburtstage anlegen


Memo kann auch an andere Termine als an Geburtstage erinnern. Andere Termine
werden genauso eingegeben wie ein Geburtstag, sie unterscheiden sich nur
im Text. Hier ein Beispiel fr einen Geburtstag und einen Termin: 

Albert, 01.09.1986
Zum Zahnarzt gehen, 01.09.2001

Wenn Sie derartige Termine anfgen, wird zunchst einmal eine Geburtstagsmeldung
ausgegeben ("Zum Zahnarzt gehen wird morgen 0 Jahre alt!"). Dies zu vermeiden
war frher hchst kompliziert. Seit Version 1.3 ist Memo flexibel genug. 

Man schreibt einfach: 

Albert, 01.09.1986
#EnvFlex=0
Zum Zahnarzt gehen, 01.09.2001

Der Parameter #EnvFlex wirkt wie ein Umschalter. Nachdem mit #EnvFlex=0 von
Geburtstagen auf Termine umgeschaltet wurde, knnen weitere Termine 
folgen. Auch kann man jederzeit wieder auf Geburtstage umschalten, z.B.:

#EnvFlex=0
Zum Zahnarzt gehen, 01.09.2001
Zum Friseur gehen, ..2001
#EnvFlex=1 
Berta, 08.10.2000 

Waehrend der Zahnarzttermin an einem festen Datum stattfindet, soll an den
Friseur staendig erinnert werden, bis er besucht wurde! Daher geben wir hier 
kein festes Datum vor, sondern nur das Jahr. 

Bei Terminen knnen beliebige Teile des Datums fehlen (das Jahr wird bei 
Terminen sowieso ignoriert). Um zum Beispiel an jedem 7. des Monats erinnert 
zu werden:

Offene Rechnungen bezahlen, .07.

Seit Version 1.5 lassen Meldungen auf einen bestimmten Wochentag beschrnken,
ein Termin also z.B. nur anzeigen, wenn er auf einen Freitag fllt. 

#EnvOnDow=5
Heute ist Freitag!, --2000
#EnvOnDow=0

erinnert z.B. jeden Freitag daran, dass Freitag ist und hebt die Beschrnkung
fr nachfolgende Termine wieder auf (egal ob sie auf einen Freitag fallen).
Um am ZWEITEN Freitag des Monats erinnert zu werden gibt es #EnvOnNr:

#EnvOnNr=2
#EnvOnDow=5
Heute ist der zweite Freitag des Monats!, --2000

Falls Sie den LETZTEN Freitag ansprechen wollen, setzen Sie #EnvOnDow=5.


b) Weitere Programmeinstellungen

Intern merkt sich das Programm jede Programmeinstellung an einem Speicherplatz.
Diese Speicherpltze machen die Umgebung, das "Environment" aus. Daher beginnt
jeder Befehl zur Vernderung eines solchen Environment-Wertes mit "#Env". 
Einzige Ausnahme: #Default setzt gleich mehrere Environment-Werte. 

Die Notation, die von #Default gesetzt wird (ob Tag oder Monat zuerst), 
kann man separat einstellen: 

#EnvFirst=0	

stellt das Programm so ein, dass ein Datum als Tag/Monat und nicht 
Monat/Tag interpretiert wird. Die Sprache bleibt jedoch unverndert, 
anders als bei #Default. #EnvFirst=1 schaltet auf Monat/Tag.

Alle Einstellungsparameter koennen gross oder klein geschrieben werden, z.B.:
#envfirst oder #ENVFIRST oder auch #EnVfIrSt, das ist voellig egal.

Zunaechst in aller Kuerze die Grundeinstellungen, die das Erscheinungsbild
betreffen:

#EnvToday=01.02.2001

zwingt das Programm, anzunehmen, dass heute der 1. Februar ist. Es wird
also nicht das tatsaechliche heutige Datum zugrunde gelegt. Diese
Einstellungsmoeglichkeit ist sehr praktisch, um das Programm zu testen.
Das JAHR stimmt allerdings immer mit dem tatschlichen berein.
Probieren Sie doch einmal Ihre eingegebenen Geburtstage als "EnvToday".

(Falls Sie ein Datum erzwingen, das mehr als 6 Monate vom wirklichen Datum
abweicht, wird der Wochentag nicht mehr nach dem aktuellen Jahr berechnet,
sondern dem vorangegangenen. Dies kann zu falschen Wochentagen fhren.)

#EnvLink=c:\doc\meinedaten.txt

legt eine weitere Textdatei fest, aus der weitere Geburtstage geholt werden.
Am Ende von MEMO.TXT (nicht frher) wird zu MEINEDATEN.TXT gewechselt,
und zwar fr immer. MEMO.TXT kann daher nur einen Link enthalten. 

Auf diese Art koennen die Geburtstage auch in einem anderen Verzeichnis
liegen, als im Verzeichnis von MEMO. Man erstellt dort, wo sie liegen sollen,
eine entsprechende Textdatei, und MEMO.TXT enhaelt nur eine einzige Zeile
nach obigem Beispiel (#EnvLink=...).

#EnvAdv=3
stellt ein, wieviele Tage im voraus das Programm an einen Termin erinnert. 
Die Standardeinstellung sind vier Tage. Diese gilt, wenn Sie keine
eigene Einstellung vornehmen. #EnvAdv=4 waere also ueberfluessig. 

#EnvLate=3
erlaubt seit Version 1.3 Meldungen auch vergangener Termine und besagt, 
wieviele Tage im Nachhinein Termine noch angesagt werden (Null=gar nicht).
Standardeinstellung sind 2 Tage (fuer ein Wochenende ohne Computer ;-).

#EnvIcon=64
stellt ein, welches von 4 Symbolen in der Box erscheint. Moeglich sind:
16=Roter Kreis, 32=Fragezeichen, 48=Dreieck mit Ausrufezeichen, 64=i-Blase
Zusaetzlich kann entweder 65536 oder 262144 addiert werden, um zu erzwingen, 
dass die Messagebox im Vordergrund bzw. immer im Vordergrund erscheint. 

#EnvMax=10
stellt ein, mit wievielen "Erinnerungsfenstern" der Bildschirm maximal
zugepflastert werden darf. Vorgabewert ist 10. Nach dem zehnten Fenster wird
abgebrochen. Diese Funktion unterbindet Auswuechse, die z.B. dadurch
entstehen, dass #EnvAdv=365 gesetzt wird... (schonmal probiert? :-) )

#EnvOnDow=07
wirkt als "Filter", normalerweise ist er ausgeschaltet (=0). Er gibt den 
Wochentag an, auf den Ereignisse fallen mssen, um angezeigt zu werden.
Nach Benutzung mu der Filter abgestellt werden! Um zum Beispiel jeden Sonntag
an's Squash-Spiel erinnert zu werden: 

#EnvOnDow=07; (die folgende Zeile nur an Tag 7 (=Sonntag) ausgeben)
Sonntag ist Squash-Spiel!!, ..2001
#EnvOnDow=00


c) Feintuning

aa) Praktisches Beispiel: Adressausgabe

Kommen wir nun zur letzten Gruppe von Parametern, die die Nachricht in der Box
selbst betreffen. Diese sind etwas komplizierter, damit man auch ausgefallene
Gestaltungen realisieren kann.

Bisher konnten wir das Programm nur zwei Arten von Texten ausgeben lassen.
"Nicht vergessen: ..." und "X wird morgen Y Jahre alt!". Um noch etwas genauer
zu sein, waren es eigentlich drei! Hinzu kommt nmlich noch die Vergangenheits-
form "X wurde gestern Y Jahre alt!". 

Diese drei Texte werden (wie sollte es anders sein) durch 3 Environment-
Werte bestimmt. Hier die Werte und Ihre Vorgaben, solange Sie sie nicht ndern:

#EnvMsg=Nicht vergessen:, (,)!
#EnvFut=, wird , Jahre alt!
#EnvPast=, wurde , Jahre alt!

Wollen Sie also die Standardmeldung von "nicht vergessen" in "bloss nicht 
vergessen" umndern, schreiben Sie einfach: 
#EnvMsg=Bloss nicht vergessen:, (,)!

Entsprechend ndert sich der Wortlaut fr smtliche nachfolgend angezeigten
Termine.

An der Stelle, an der im Message-Text Kommata auftauchen, wird etwas eingefgt.
Beispielsweise wird nach "nicht vergessen" die Bezeichnung des Termins 
("zum Zahnarzt gehen") eingesetzt. Hierbei gilt folgende Regel: 

Immer wenn im Messagetext (Nicht vergessen) ein Komma auftaucht, wird zum 
Terminstext gewechselt, bis dort ein Komma auftaucht, dann wird wieder zum
Messagetext gewechselt, immer hin und her. 

Hierfr eine praktische Anwendung: 
Angenommen, wir wollen auch gleich die Telefonnummer der vom Termin betroffenen
Person mit ausgeben. Zunchst fgen wir diese unseren Terminen an: 

Zum Zahnarzt gehen, 01.09.2001, Tel.: 0177-367689 
Zum Friseur gehen, ..2001, Tel.: 0174-532363

Damit die Nummer nicht ignoriert wird, sorgen wir durch ZWEI zustzliche 
Kommata fr die Ausgabe (ein Komma fr's Datum, ein Komma fr die Telnr.):
#EnvMsg=Nicht vergessen:, (,)!,,

Dieses Spiel funktioniert fr die beiden anderen Texte (die bei 
Geburtstagen ausgegeben werden, #EnvFut/#EnvPast) ganz genauso. 

brigens knnen Sie auch nur #EnvMsg ndern, jedoch #EnvFut/#EnvPast beim
alten lassen. Dann knnen Sie mit #EnvFlex bequem zwischen eigenem und
mitgeliefertem Text umschalten (s.o.).

Beachten Sie bitte noch, dass alle Einstellungen immer erst ab der
Stelle gelten, wo sie in MEMO.TXT auftauchen. Das heisst, ich kann erst eine
Reihe von Geburtstagen mit deutscher Meldung ausgeben, dann folgt "Default=1"
und es folgen weitere Geburtstage in amerikanischer Schreibweise.


bb) Sonstige Parameter

Vielleicht haben Sie erraten, wozu das zweite Komma im #EnvMsg-Text
gedacht ist. An dessen Stelle wird die Entfernung des Termins (gestern,
heute, morgen) eingesetzt. Aber woher wei das Programm, dass es 
beim zweiten Komma nicht zum Terminstext umschaltet und etwa in obigem
Beispiel bereits das Datum oder die Telefonnummer ausgibt?

Weil ihm der letzte noch zu besprechende Parametertyp sagt, da genau
dort der Zeitabstand erscheinen soll. 

#EnvWPos=4
(die Voreinstellung) besagt, dass als 4. Bruchstck die Entfernung einzusetzen
ist. Bruchstck 1: "Nicht vergessen:", dann kommt ein Komma, daher ist
Bruchstck 2:"Zum Zahnarzt gehen", dann kommt ein Komma mit folgender 
Klammer, also Bruchstck 3:"(", und das nun folgende 4. Bruchstck ist 
die Entfernungsangabe (heute, morgen,...).

Fr die anderen beiden Texte (#EnvFut / #EnvPast) existiert jeweils ein
entsprechender Parameter:
#EnvWFut		gibt die Stelle der "When"-Angabe im Zukunfstext an.
#EnvWPast	gibt die Stelle der "When"-Angabe im Vergangenheitstext an.

Nach dem gleichen Strickmuster existiert noch ein weiterer Parameter,
der das "Alter" einer Person oder eines Termins ausgibt.

#EnvAPos=0
(die Voreinstellung) besagt, dass hierzu im Standardtext gar nichts
angezeigt wird, jedoch erscheint in den Geburtstagsmeldungen fr 
Vergangenheit und Zukunft jeweils an 5. Stelle (USA:6.) das Alter:

#EnvAFut=5
#EnvAPast=5


cc) Weitere Sprachen

Da saemtliche Texte frei veraenderbar sind, kann das Programm an beliebige
Sprachen angepasst werden. Sprachanpassungen geschehen durch die Verwendung
eigener Texte fr #EnvMsg, #EnvFut und #EnvPast sowie eines speziellen 
Parameters #EnvWhen, der die Bezeichnung fr "gestern", "heute" etc. bestimmt:

#EnvWhen=vor 3 Tagen, vorgestern, gestern, heute, morgen, bermorgen, in 3 Tagen

Seit Version 1.3 beginnt diese Liste nicht mehr am gegenwrtigen Tag, sondern 
3 Tage in der Vergangenheit. Die Liste mu nunmehr zwingend die genannten 7
Eintrge haben und von "vor 3 Tagen" bis "in 3 Tagen" reichen. Es ist wichtig,
die Ziffer "3" statt des Wortes "drei" zu verwenden, damit gerechnet wird.

Damit sind alle Parameter abschlieend besprochen. 

Sprachanpassungen knnen Sie allen Benutzern zur Verfgung stellen, indem Sie 
mir eine e-mail mit Message-Texten in Ihrer Sprache schreiben. Fertige #Env-
Werte sind nicht notwendig, ich nehme die Anpassung selbst vor. Schicken 
Sie einfach eine bersetzung der folgenden vier Bruchstcke: 

"vor 3 Tagen, vorgestern, gestern, heute, morgen, bermorgen, in 3 Tagen"
"Alfred Mustermann wird in 3 Tagen 12 Jahre alt!"
"Alfred Mustermann wurde vor 3 Tagen 12 Jahre alt!"
"Nicht vergessen: Zahnarzttermin machen (heute)!"


4. EPILOG
=======================================

Ich freue mich sehr ber Feedback per E-Mail. Schreiben Sie mir, wenn Sie
Kritik oder Verbesserungsvorschlge haben, besonders bgzl. der Sprachen. 

Meine E-Mail-Adresse ist: soft@addcom.de

Das Programm wurde mit dem Freeware C-Compiler LCC entwickelt. 
Besonderen Dank daher an seine Autoren C.Fraser, D.Hanson, Jacob Navia!

Aenderungen gegenueber der Vorversion:
Memo 1.0: Erste Version im Internet (deutsch, englisch, frz beta)
Memo 1.1: Auch Franzoesisch und Spanisch, kein Absturz bei zu hohem #default
          Datumsangaben zulaessig in der Form: 01.. oder .02.
          Internationales #default=0 (=englische Sprache, aber europ. Notation)
Memo 1.2: (nicht verffentlicht) Berichtigung in der spanischen Textausgabe.
          Texte der Art "in zwei Tagen" durch Berechnung ("in 2 Tagen") ersetzt.
Memo 1.3: Erinnerungen im Nachhinein mglich ("Vor 2 Tagen hatte X Geburtstag!").
          Neuer Parameter #EnvLate gibt an, wieviele Tage im Nachhinein.
          #EnvWhen muss jetzt auch die Vergangenheit untersttzen!
          Der Default-Text von #EnvMsg ist nun eine kurze Standardnachricht.
          Speziell fr Geburtstage gibt es nun #EnvFut und #EnvPast, sowie #EnvFlex.
          Alle Meldungen beginnen mit einem Grobuchstaben, unabhngig von #EnvMsg.
Memo 1.4: Einfhrung einer Unterscheidung von Wochentagen, 
          Einfhrung des Filters #EnvOnDow zur Anzeige nur an bestimmtem Wochentag
          Einfhrung des Filters #EnvOnNr zu Anzeige z.B. am "dritten" Sonntag etc.
Memo 1.5: berarbeitung der Wochentagsfunktionen: Anzeige nicht nur AM Wochentag,
          sondern auch ein bestimmte Zahl Tage vorher (wie bei EnvAdv), dasselbe
          fuer EnvOnNr. Erweiterung von EnvOnNr fr den "letzten" Sonntag etc.
          Portugiesische Sprachuntersttzung. Geschwindigkeitsoptimierung. 

