Letzte aktuelle nderungen:
===========================

Achtung: Alle  Umsteiger von Version 2.1 auf Version  2.3  mssen 
         vorhandene Talk-Programme neu bersetzen. ADITALK meldet 
         sich  mit  der gleichen Versionsnummer wie  die  PC  und 
         UNIX-Versionen,  da ATARI-, PC- und UNIX-Versionen exakt 
         identisch sind.  Diese Nummer ist 2.23.  Das ADITALK ST-
         Produkt fhrt trotzdem die Versionsnummer  2.3,  passend 
         zur ADIMENS Version 2.3. Um die Kompatibilitt mit alten 
         2.1  und  2.2  Datenbanken  aufrechtzuerhalten  mu  vor 
         Benutzung  mit ADITALK 2.3 das neue INIT  2.3  gestartet 
         und  Db  generieren mit den  entsprechenden  Datenbanken 
         gemacht  werden.  Dann  werden  die  Zugriffsrechte  neu 
         generiert, die vom ADITALK bentigt werden.

Da in der Version 2.1 die Bildschirmausgabe nicht konsistent  mit 
der  Druckerausgabe  war (einzelne Zeichen wurden nicht  auf  dem 
Drucker  ausgegeben),  wurde diese Fehler behoben.  Das  hat  zur 
Folge,  da  Listenausgaben  auf den Drucker mit der Version  2.3 
jetzt anders aussehen knnen.  Die Programmteile fr  Druckeraus-
gabe sollten also noch einmal getestet werden.

Benutzt man den GET und READ-Befehl,  so sollte man bei  Textfel-
dern  die angehngten Leerzeichen durch den TRIM-Befehl  lschen, 
da sonst der Datensatz nicht gefunden werden knnte.

Beispiel:

STORE SPACE(20) TO Name
SAY "Name: " GET Name
READ
FIND Name
?Name
TRIM (Name)
?Name
FIND Name

Ist  das  Feld "Name" ein Schlsselfeld mit 20 Zeichen  und  wird 
z.B.  "Mei?"  eingetragen,  so  wird  der  Datensatz  bei  obigem 
Programm  nicht gefunden.  Erst nach dem TRIM-Befehl werden  alle 
"Meier" gefunden.

Das Feld Name enthlt im ersten Fall die Zeichenkette
"Mei?                "
und im zweiten Fall die Zeichenkette
"Mei?"

Der  TRIM-Befehl  mu aber nur angewendet werden,  wenn  im  INIT 
"Leerzeichen ignorieren" nicht angewhlt wurde,  d.h.,  da Leer-
zeichen signifikant sein sollen.


Neue Befehle und Funktionen im ADITALK:
---------------------------------------

Die  untenstehenden Funktionen sind zwar im Hilfetext zu  ADITALK 
dokumentiert, nicht jedoch im Handbuch aufgefhrt.

STRIP  (Funktion):

STRIP  liefert einen umgewandelten String  zurck.  Dabei  werden 
alle Umlaute gegen die zuhrigen Buchstaben ausgetauscht und alle 
Leerzeichen - auch im Wort - entfernt. Beispiel:

STRIP(" n der ng ") ergibt 'AnderUng' oder:

IF UPPER(STRIP(" L knnchen ")) = "OLKANNCHEN"
   ....
ENDIF

Dieser Vergleich ist wahr (TRUE). Natrlich drfen auch Variablen 
und Merkmalsfelder benutzt werden.


LOOK  (Befehl):

Syntax  wie FIND,  macht aber kein FIRST und findet  deshalb  den 
nchsten passenden Satz.

Beispiel:
STORE "?MEI?" to a
FIND a
LOOK a
LOOK a

Jetzt steht der dritte Datensatz,  dessen Schlsselfeld ein "MEI" 
enthlt zur Bearbeitung an.  Mit LOOK lassen sich insbesondere do 
while-Schleifen ber Schlsselfelder beschleunigen.

ACHTUNG: Look kann nur dann etwas finden, wenn vorher schon etwas 
gefunden wurde,  d.h.  die Befehlsfolge  FIRST   LOOK findet  den 
ertsen gltigen Satz nicht unbedingt!


INPUT (Schalter):

Mit  SET  INPUT TO <Dateiname> und SET INPUT ON (Syntax  wie  bei 
OUTPUT)  kann die Eingabe von der Tastatur z.B.  auf  eine  Datei 
umgeleitet  werden.  Dabei  knnen z.B.  Inhalte einer  Liste  in 
Datenbankfelder eingelesen/importiert werden.

Beispiel: Die Datei "hallo" enthlt die Zeilen:

Guten
Morgen

Das TALK-Programm sieht folgendermaen aus:

STORE "xxxxxxxxxxxx"  TO  a,b /* Variablen vorbelegen */
SET INPUT TO "hallo"
SET INPUT ON
GET a
GET b
READ
SET INPUT OFF
SET INPUT TO "con:"

Jetzt enthlt die Variable a das Wort 'Guten', die Variable b das 
Wort 'Morgen'.

Im  Dialogmodus mssen natrlich echte Befehle in  einer  solchen 
Inputdatei  stehen (z.B.  automatisches bersetzen von  TALK-Pro-
grammen).  Sobald  SET INPUT auf ON geschaltet wird,  werden  die 
Zeichenketten  aus  der angegebenen INPUT-Datei gelesen  und  als 
Befehle interpretiert.

Findet  der INPUT ein EOF,  dann wird die Eingabe wieder  an  die 
Tastatur  zurckgegeben.  Im Programmodus enthlt  der  LASTKEY() 
dann  ein  "EOF",  falls mit den Befehlen GET -  READ  oder  EDIT 
gearbeitet  wurde.  Dies  gilt  nicht fr den  Befehl  ACCEPT  TO 
Variable.

Ein Programm wie das folgende:

SET INPUT TO "Datei_1"
SET INPUT ON

DO WHILE LASTKEY() <> "EOF"
   STORE SPACE (79) TO abc
   GET abc
   READ
ENDDO

SET INPUT TO "Datei_2"
SET INPUT ON

DO WHILE LASTKEY() <> "EOF"
   STORE SPACE (79) TO abc
   GET abc
   READ
ENDDO

wird  keinerlei Input aus der Datei "Datei_2" aufnehmen,  da  der 
Inhalt von LASTKEY() immer noch auf "EOF" steht. Um den LASTKEY() 
zurckzusetzen, kann folgender Trick angewandt werden:

SET INPUT TO "Datei_1"
SET INPUT ON

DO WHILE LASTKEY() <> "EOF"
   STORE SPACE (79) TO abc
   GET abc
   READ
ENDDO

SET INPUT TO "Datei_1"
WAIT

Der WAIT-Befehl wartet auf das erste Zeichen von  Datei_1.  Durch 
diesen  Befehl  wird der LASTKEY() neu gesetzt.  Da  die  Datei_1 
nicht leer war,  ist LASTKEY() nicht mehr EOF.  Jetzt knnte  die 
zweite DO WHILE-Schleife von obigem Beispiel erfolgreich durchge-
fhrt werden.

Noch eine Anmerkung zum ROW()-Befehl.  Wird aus einer INPUT-Datei 
gelesen und der ROW()-Befehl benutzt,  sollte vorher AUSTOSC  auf 
OFF geschaltet werden.

Beispiel:

SET AUTOSC OFF

SET INPUT TO "Datei_1"
SET INPUT ON

STORE 1 TO i;

CLEAR

DO WHILE LASTKEY() <> "EOF"
   STORE SPACE (79) TO abc
   GET abc
   READ
   ROW()+1,0
   ??i
   STORE i + 1 TO i
ENDDO

Beispiele  fr  Datenexport  und -import befinden  sich  auf  der 
Diskette unter den Namen EXPORT.TLK und IMPORT.TLK.

Wir  bittem  um Ihr Verstndnis fr diese  Art  der  zustzlichen 
Information  und  wnschen Ihnen viel Erfolg  beim  Arbeiten  mit 
ADITALK ST.

P.S.: Ein  Runtime-Modul  fr TALK-Applikationen ist  derzeit  in 
      Vorbereitung.  Gerne informieren wir Sie ber  Lizenzkondi-
      tionen.

