SYSmessage

Top  Previous  Next

usgeben eine Meldung mit Fehlerbehandlung.

SYSmessage dient vor allem der einfachen Behandlung von Speicherresidenten Meldungstexten. Beim ersten Aufruf für eine bestimmte Meldung liefert SYSmessage einen Buffer mit dem zugehörigen Text zurück. Wird dieser Buffer der Prozedur beim nächsten Aufruf mit derselben Meldung übergeben, so erfolgt kein weiterer Dateizugriff. Die Meldungsnummer dürfen nicht höher als 9999 ausfallen.

Parameter

root (PROOT)                                             [IN]

Handle auf die geöffnete Datenbank.

module (const char *)                                 [IN]

Dies ist der Name der Prozedur, unter der die Meldung in der Datei MELDUNG.DAT abgelegt ist.

num (int)                                                       [IN]

Dies ist die laufende Nummer der Meldung innerhalb eines Moduls.

var (const char *)                                         [IN]

Dies sollte eine statische Variable sein, die mit NULL initialisiert ist. Dieser Variablen sollte das Ergebnis der Prozedur zugewiesen werden.

Es kann statt dessen auch immer NULL übergeben werden. Der Zeiger, den die Funktion als Ergebnis liefert, muss dann sofort mit Free beseitigt werden.

...                                                                  [IN]

Als weitere Parameter können wie bei printf die Werte für %d, %s, ... folgen.

Ergebnis

(char *)                                                     [OUT]

Wenn die Meldung erfolgreich ausgegeben werden konnte, dann liefert die Prozedur diesen String zurück. Der String wurde mit Malloc vom System angefordert und kann entweder mit Free wieder entfernt werden, oder beim nächsten Aufruf als Eingabe verwendet werden.

Deklaration

#include "system.h"

 

char * DLLENTRY SYSmessage (

     PROOT       root,

     const char *   module,

     int            num,

     const char *   var,

     ...

);

Beispiel

void gibaus(void){

  static char *meldung1, *meldung2;

  meldung1=SYSmessage("TEST",3,meldung1);

  meldung2=SYSmessage("TEST",4,meldung2);

  meldung1=SYSmessage("TEST",3,meldung1);

  meldung2=SYSmessage("TEST",4,meldung2);

  Free(SYSmessage("TEST",5,NULL);

  Free(SYSmessage("TEST",6,NULL,13);

}

Inhalt von MELDUNG.DAT:

--- TEST 3

Meldung Nummer 1

 

--- TEST 4

Meldung Nummer 4

 

--- TEST 6

Meldung ist %d

 

---

Ausgaben:

  Meldung Nummer 1

  Meldung Nummer 4

  Meldung Nummer 1

  Meldung Nummer 4

  Meldung ist 13