ING_DB
This commit is contained in:
parent
46839bc092
commit
397893a719
|
|
@ -0,0 +1,335 @@
|
|||
ALLGEMEINES:
|
||||
|
||||
Eine Maske (frame) ist eine Verkettung von Feldern (form).
|
||||
Sie wird ueber einen Pointer identifiziert.
|
||||
z.B.: char *frame;
|
||||
|
||||
Es gibt Ausgabe-, Eingabe-, Wert- und Menuefelder.
|
||||
Ein Feld kann als Wert- und Eingabefeld definiert werden,
|
||||
wobei die Definition des Wertfeldes zuerst erfolgen muss !
|
||||
|
||||
Die Zeilennummerierung geht von 1 bis 24.
|
||||
|
||||
Die Spaltennummerrierung geht von 1 bis 78.
|
||||
|
||||
Die Zeile 1 ist grundsaetzlich fuer Fehler- bzw. Informationstexte
|
||||
vorgesehen.
|
||||
|
||||
Bindungen zwischen C-Variablen und Feldern erfolgen grund-
|
||||
saetzlich ueber die Adressen der Variablen.
|
||||
|
||||
Formatangaben erfolgen im Stil von scanf bei Eingabefeldern
|
||||
und im Stil von printf bei Wertfeldern. Im Falle von Zeichen-
|
||||
ketten kann der Wert `(char *) 0' fuer die 1 zu 1 Ubernahme
|
||||
spezifiert werden.
|
||||
|
||||
|
||||
FUNKTIONEN:
|
||||
|
||||
------- char *MMalloc(frame, line, col, len, var)
|
||||
char **frame;
|
||||
int line;
|
||||
int col;
|
||||
int len;
|
||||
char *var;
|
||||
|
||||
MMalloc stellt ein Feld innerhalb der Maske (frame) bereit.
|
||||
Der return-Wert ist ein vom Nutzer nicht interpretierbarer,
|
||||
aber fuer andere Funktionen verwendbarer Wert. Das Feld
|
||||
wird auf der Zeile line und der Spalte col mit der Laenge len
|
||||
angelegt. Das Argument var stellt den Zeichenpuffer fuer das
|
||||
Feld dar. Wird fuer var der Wert `(char *) 0' angegeben,
|
||||
wird vom Bildschirmpaket automatisch ein Puffer berreitgestellt.
|
||||
MMalloc muss aufgrund ihres Rueckgabewertes extern deklariert
|
||||
werden.
|
||||
z.B.: char *frame;
|
||||
char *form;
|
||||
extern char *MMalloc();
|
||||
frame = (char *) 0;
|
||||
form = MMalloc(&frame, 1, 10, 10, (char *) 0);
|
||||
|
||||
------- MMclr_error()
|
||||
|
||||
Ein angezeigter Fehlertext kann mit MMclr_error() geloescht
|
||||
werden.
|
||||
|
||||
------- MMclr_line(line, col)
|
||||
int line;
|
||||
int col;
|
||||
|
||||
MMclr_line loescht die Zeile line ab der Spalte col.
|
||||
|
||||
------- MMclr_screen(line, col)
|
||||
int line;
|
||||
int col;
|
||||
|
||||
MMclr_screen loescht den Bildschirm ab Zeile line und
|
||||
Spalte col.
|
||||
|
||||
------- MMclr_value(frame)
|
||||
char *frame;
|
||||
|
||||
MMclr_value loescht alle Werte in Wertfeldern (im Zeichenpuffer,
|
||||
nicht auf dem Bildschirm).
|
||||
|
||||
------- MMerror(error_text)
|
||||
char *error_text;
|
||||
|
||||
MMerror schreibt den Fehler- bzw. Informationstext error_text
|
||||
auf den Bildschirm in Zeile 1. Eine nachfolgende Eingabe durch
|
||||
den Nutzer loescht diesen Text automatisch.
|
||||
|
||||
------- MMexit_form(clear)
|
||||
int clear;
|
||||
|
||||
MMexit_form beendet die Arbeit des Bildschirmpakets und stellt
|
||||
das Terminal in den urspruenglichen Zustand zurueck.
|
||||
Ist clear==0, wird der Bildschirminhalt ungeaendert stehen
|
||||
gelassen, andernfalls geloescht.
|
||||
|
||||
------- MMform(frame)
|
||||
char *frame;
|
||||
|
||||
MMform aktiviert die Maske frame, schreibt diese auf dem
|
||||
Bildschirm aus und uebernimmt die gesamte weitere Steuerung.
|
||||
|
||||
------- MMfree(frame)
|
||||
char **frame;
|
||||
|
||||
MMfree gibt eine Maske frame wieder frei.
|
||||
z.B.: char *frame;
|
||||
MMfree(&frame);
|
||||
|
||||
------- MMinit_form(clear)
|
||||
int clear;
|
||||
|
||||
MMinit_form aktiviert die Arbeit des Bildschirmpakets und stellt
|
||||
das Terminal in einen bestimmten Zustand.
|
||||
Ist clear==0, wird der Bildschirminhalt ungeaendert stehen
|
||||
gelassen, andernfalls geloescht.
|
||||
|
||||
------- MMin_field(form, func, help, need)
|
||||
char *form;
|
||||
int (*func)();
|
||||
int (*help)();
|
||||
int need;
|
||||
|
||||
MMin_field definiert ein durch MMalloc beschafftes Feld form als
|
||||
Eingabefeld.
|
||||
func stellt die Feldfunktion dar, die aufgerufen wird, wenn in
|
||||
das Feld eine Eingabe erfolgte. Sie muss den Wert 1
|
||||
zurueckgeben, wenn ales in Ordnung ist, andenfalls 0.
|
||||
help ist eine Hilfefunktion und need gibt an, ob es sich um ein
|
||||
wahlfreies (need==0) oder ein obligatorisches (need==1)
|
||||
Eingabefeld handelt.
|
||||
z.B.: char *frame;
|
||||
char *form;
|
||||
extern char *MMalloc();
|
||||
extern int input();
|
||||
form = MMalloc(&frame, 1, 10, 10, (char *) 0);
|
||||
MMin_field(form, input, (int (*)()) 0, 0);
|
||||
|
||||
------- MMmen_field(form, func, help, menue_text)
|
||||
char *form;
|
||||
int (*func)();
|
||||
int (*help)();
|
||||
char *menue_text;
|
||||
|
||||
MMmen_field definiert ein durch MMalloc beschafftes Feld form als
|
||||
Menuefeld.
|
||||
func stellt die Feldfunktion dar, die aufgerufen wird, wenn die
|
||||
Menuefunktion ausgewaehlt wurde. help ist eine Hilfefunktion und
|
||||
menue_text gibt den Menuetext an.
|
||||
z.B.: char *frame;
|
||||
char *form;
|
||||
extern char *MMalloc();
|
||||
extern int menue();
|
||||
form = MMalloc(&frame, 1, 10, 7, (char *) 0);
|
||||
MMmen_field(form, menue, (int (*)()) 0, " MENUE");
|
||||
|
||||
------- MMnext()
|
||||
|
||||
Beschreibung zu komplex.
|
||||
|
||||
------- MMout_field(form, output_text)
|
||||
char *form;
|
||||
char *output_text;
|
||||
|
||||
MMout_field definiert ein durch MMalloc beschafftes Feld form als
|
||||
Ausgabefeld.
|
||||
output_text gibt den auszugebenden Text an.
|
||||
z.B.: char *frame;
|
||||
char *form;
|
||||
extern char *MMalloc();
|
||||
form = MMalloc(&frame, 1, 10, 7, (char *) 0);
|
||||
MMout_field(form, "AUSGABE");
|
||||
|
||||
------- char *MMpmove(src, dst, len, ch)
|
||||
char *src;
|
||||
char *dst;
|
||||
int len;
|
||||
int ch;
|
||||
|
||||
siehe AApmove().
|
||||
|
||||
------- MMsmove(src, dst)
|
||||
char *src;
|
||||
char *dst;
|
||||
|
||||
siehe AAsmove().
|
||||
|
||||
------- MMset_field(frame, var, no)
|
||||
char *frame;
|
||||
char *var;
|
||||
int no;
|
||||
|
||||
MMset_field verbindet die Funktion von MMset_value() mit
|
||||
der Ausgabe des Wertes auf dem Bildschirm.
|
||||
|
||||
------- MMset_value(frame, var, no)
|
||||
char *frame;
|
||||
char *var;
|
||||
int no;
|
||||
|
||||
Mset_value uebernimmt den Wert der C-Variablen var in die
|
||||
Maske, ohne ihn auf dem Bildschirm anzuzeigen. var muss
|
||||
durch eine Variablenfunktion MMvar.. gebunden sein. no gibt
|
||||
die Nummer der Bindung an (normalerweise 0).
|
||||
|
||||
------- MMshell(form, shell, quit, command)
|
||||
char *form;
|
||||
int shell;
|
||||
int quit;
|
||||
char *command;
|
||||
|
||||
MMshell laedt ein neues Programm.
|
||||
Ist shell==0 wird das Programm command direkt geladen,
|
||||
andenfalls ueber eine Shell. Ist quit==0, wird nach Programm-
|
||||
ende automatisch die Maske wieder aufgebaut, andernfalls
|
||||
erfolgt eine Abfrage `ENDE ?', die erst quittiert werden muss.
|
||||
Als aktives Feld wird form ausgewaehlt.
|
||||
|
||||
------- MMval_field(form, func)
|
||||
char *form;
|
||||
int (*func)();
|
||||
|
||||
MMval_field definiert ein durch MMalloc beschafftes Feld form als
|
||||
Wertfeld.
|
||||
func stellt die Feldfunktion dar, die aufgerufen wird, wenn ein
|
||||
Wert in das Wertfeld eingefuellt wurde. Sie muss den Wert 1
|
||||
zurueckgeben, wenn ales in Ordnung ist, andenfalls 0.
|
||||
z.B.: char *frame;
|
||||
char *form;
|
||||
extern char *MMalloc();
|
||||
extern int value();
|
||||
form = MMalloc(&frame, 1, 10, 7, (char *) 0);
|
||||
MMval_field(form, value);
|
||||
|
||||
------- MMvalue(frame)
|
||||
char *frame;
|
||||
|
||||
MMvalue schreibt alle Wertfelder auf den Bildschirm.
|
||||
|
||||
------- MMvarc(form, var, format)
|
||||
char *form;
|
||||
char *var;
|
||||
char *format;
|
||||
|
||||
MMvarc bindet die char[]-Variable var an das Feld form
|
||||
mit dem Format format.
|
||||
z.B.: char *frame;
|
||||
char *form;
|
||||
char varc[21];
|
||||
extern char *MMalloc();
|
||||
form = MMalloc(&frame, 1, 10, 10, (char *) 0);
|
||||
MMin_field(form, (int (*)()) 0, (int (*)()) 0, 0);
|
||||
MMvarc(form, varc, (char *) 0);
|
||||
|
||||
------- MMvarf4(form, var, format)
|
||||
char *form;
|
||||
char *var;
|
||||
char *format;
|
||||
|
||||
MMvarf4 bindet die float-Variable var an das Feld form
|
||||
mit dem Format format.
|
||||
z.B.: char *frame;
|
||||
char *form;
|
||||
float varf4;
|
||||
extern char *MMalloc();
|
||||
form = MMalloc(&frame, 1, 10, 10, (char *) 0);
|
||||
MMval_field(form, (int (*)()) 0);
|
||||
MMvarf4(form, &varf4, "%10.2f");
|
||||
|
||||
------- MMvarf8(form, var, format)
|
||||
char *form;
|
||||
char *var;
|
||||
char *format;
|
||||
|
||||
MMvarf8 bindet die double-Variable var an das Feld form
|
||||
mit dem Format format.
|
||||
z.B.: char *frame;
|
||||
char *form;
|
||||
double varf8;
|
||||
extern char *MMalloc();
|
||||
form = MMalloc(&frame, 1, 10, 10, (char *) 0);
|
||||
MMin_field(form, (int (*)()) 0, (int (*)()) 0, 0);
|
||||
MMvarf8(form, &varf8, "%lf");
|
||||
|
||||
------- MMvari2(form, var, format)
|
||||
char *form;
|
||||
char *var;
|
||||
char *format;
|
||||
|
||||
MMvari2 bindet die short-Variable var an das Feld form
|
||||
mit dem Format format.
|
||||
z.B.: char *frame;
|
||||
char *form;
|
||||
short vari2;
|
||||
extern char *MMalloc();
|
||||
form = MMalloc(&frame, 1, 10, 10, (char *) 0);
|
||||
MMval_field(form, (int (*)()) 0);
|
||||
MMvari2(form, &vari2, "%010d");
|
||||
|
||||
------- MMvari4(form, var, format)
|
||||
char *form;
|
||||
char *var;
|
||||
char *format;
|
||||
|
||||
MMvari4 bindet die long-Variable var an das Feld form
|
||||
mit dem Format format.
|
||||
z.B.: char *frame;
|
||||
char *form;
|
||||
long vari4;
|
||||
extern char *MMalloc();
|
||||
form = MMalloc(&frame, 1, 10, 10, (char *) 0);
|
||||
MMin_field(form, (int (*)()) 0, (int (*)()) 0, 0);
|
||||
MMvari4(form, &vari4, "%ld");
|
||||
|
||||
|
||||
TERMINALTABELLEN:
|
||||
|
||||
In dem Verzeichnis /usr/lib/form werden die Terminaltabellen unter
|
||||
dem Namen der Terminals (shell-Variable TERM) abgelegt.
|
||||
Jede Zeile beginnt mit einer Kennung gefolgt von einem Tabulator
|
||||
und dem Code. Der Code wird zeichenweise durch Leerzeichen
|
||||
getrennt. Ein Zeichen kann durch eine oktale Notation (\33)
|
||||
angegeben werden.
|
||||
Folgende Kennungen sind vereinbart:
|
||||
C = (CONTINUE) NEXT-RECORDS-KEY
|
||||
D = (DELETE) DELETE-ONE-CHARACTER-KEY
|
||||
F = (FIELD) BEGIN-OF-FIELD-KEY
|
||||
H = (HELP) HELP-KEY
|
||||
I = (INSERT) INSERT-ONE-CHAR-KEY
|
||||
L = (LEFT) CURSOR-LEFT-KEY
|
||||
M = (MENUE) MENUE-KEY
|
||||
N = (NEXT) NEXT-FIELD-KEY
|
||||
P = (PREV) PREVIOUS-FIELD-KEY
|
||||
Q = (QUIT) QUIT-KEY
|
||||
R = (RIGHT) CURSOR-RIGHT-KEY
|
||||
cd = CLEAR-SCREEN
|
||||
ce = CLEAR-LINE
|
||||
cm = MOVE-CURSOR-TO-POSITION
|
||||
so = INVERS-ON
|
||||
se = INVERS-OFF
|
||||
In der Zeile cm folgt nach demo Code noch ein Tabulator und eine
|
||||
Zahl, die die Zeilenadjustierung angibt.
|
||||
Loading…
Reference in New Issue