home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-09-22 | 127.7 KB | 6,629 lines |
- 072040001030000144008000002006000
- 11
- 207.07.89- # -superlib.doc1
- F0110030001
- R [.◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆...]0010
- 9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆........]0010
- 8000100001\SUPER1.IMG
- ê
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\SUPER2.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\SUPER3.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- êInhaltsverzeichnis Inhaltsverzeichnis
-
-
-
- ü1. libstr.a - Funktionen zum Verarbeiten von Zeichenkettenë
- ü
- Ç Zeichenkette formatieren
- (stradj, stradjl, stradjr)
-
- Zeichenketten aneinanderhängen
- (strcat, strncat, strcatn, strncatn)
-
- Adresse eines Zeichens in einer Zeichenkette suchen
- (strchr, strichr, strrchr, strirchr)
-
- Zeichenketten vergleichen
- (strcmp, stricmp, strncmp, strnicmp, strscmp, striscmp,
- strnscmp,strniscmp)
-
- Longwert von einer Basis in eine andere Basis wandeln
- (strcnvl,strcnvul)
-
- Zeichenketten miteinander kopieren
- (strcpy, strncpy, strn0cpy, strcpyn, strncpyn, strpcpy)
-
- Bestimmte Zeichen einer Zeichenkette zählen
- (strcspn, stricspn, strspn, strispn)
-
- Zeichenkette zentrieren
- (strctr)
-
- Duplikat einer Zeichenkette erstellen
- (strdup, strndup)
-
- Zeichenkette auf Leerzeichen untersuchen
- (stremp, strnemp)
-
- Zeichenkette in einer Zeichenkettenmenge suchen
- (strfnd, strifnd)
-
- Longwert in String wandeln
- (strfroml,strfromul)
-
- Groß- in Kleinbuchstaben wandeln und umgekehrt
- (strinv, strninv)
-
- Länge einer Zeichenkette berechnen
- (strlen)
-
- Zeichenkette in Kleinbuchstaben wandeln
- (strlwr, strnlwr, strlwrg, strnlwrg)
-
- Zwei Zeichenketten matchen
- (strmat, strimat, strnmat, strnimat)
-
- Teil einer Zeichenkette suchen
- (strpbrk, stripbrk, strrpbrk, strirpbrk)
-
- Position eines Zeichens ineiner Zeichenkette suchen
- (strpos, stripos, strrpos, strirpos)
- 9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆........]0010
-
-
-
- ê______________________________________________________________________Ç
- êInhaltsverzeichnis InhaltsverzeichnisÇ
-
-
-
- Zeichen einer Zeichenkette umdrehen (an sich selbst spiegeln)
- (strrev)
-
- Zeichenkette rotieren
- (strrotl, strrotr, strnrotl, strnrotr)
-
- Zeichenmuster in einer Zeichenkette ersetzen
- (strrpl, strirpl, strnrpl, strnirpl)
-
- Zeichen einer Zeichenkette durch ein Zeichen ersetzen
- (strset, strnset, strsset,strspc, strnspc,memset)
-
- ZeicheneinerZeichenkettesortieren
- (strsort,strisort,strrsort,strirsort)
-
- Adresse einer Teil-Zeichenkette in einer Zeichenkette suchen
- (strstr, stristr, strrstr, strirstr)
-
- Zeichenkette in Token aufteilen
- (strtok)
-
- Zeichenketten in Zahlen konvertieren
- (strtol, strtoul, strtof)
-
- Zeichen aus Zeichenkette entfernen
- (strtrm, strtrml, strtrmr, strptrm, strptrml, strptrmr)
-
- Zeichenkette in Großbuchstaben wandeln
- (strupr, strnupr, strwupr, struprg, strnuprg)
-
- Teil-Zeichenkette kopieren
- (substr, subnstr)
-
- Adressbereichevergleichenundkopieren
- (memchr,memcmp,memcpy)
-
-
- ü2. libterm.a - Funktionen zumSteuernder Bildschirmausgabe
-
- 2.1. termcap
- Ç
- Termcap-Eintrag aus Termcap-Datei lesen
- (tgetent)
-
- Numerischen Termcap-Eintrags-Feld-Wert suchen
- (tgetnum)
-
- Vorhandensein eines Termcap-Eintrags-Feldes testen
- (tgetflag)
-
- Alphanumerischen Termcap-Eintrags-Feld-Wert suchen
- (tgetstr)
-
- Cursor-Adressierungs-String erstellen
- (tgoto)
-
- String auf Bildschirm ausgeben
- (tputs)
-
- ê______________________________________________________________________Ç
- êInhaltsverzeichnis InhaltsverzeichnisÇ
-
-
-
- ü2.2. terminalë
- Ç
- Terminal-Variablen und Terminal-Mode initialisieren
- (t_init)
-
- Terminal-Mode zurücksetzen
- (t_exit)
-
- Terminal zwischen Normal und Raw umschalten
- (t_rawon, t_rawoff)
-
- Signalton auf Standard-Ausgabe ausgeben
- (t_beep)
-
- Bildschirmbereiche löschen
- (t_cls, t_cleol, t_cleos)
-
- Bildschirm-Cursor an- und ausschalten
- (t_curson, t_cursoff,t_cursstat)
-
- Bildschirm-Cursor-Blinkenan-undausschalten
- (t_cblink,t_csteady)
-
- Tastencode oder Konstante für Sondertaste liefern
- (t_getc)
-
- Bildschirm-Cursor positionieren
- (t_goxy,t_chome,t_cup,t_cdown,t_cright,t_cleft)
-
- Terminal-Attribute setzen
- (t_setatt, t_invon, t_invoff)
-
- Tabulatorweitesetzen(intern)
- (t_settw)
-
- LiniengrafikaufBildschirmerzeugen
- (t_hline,t_vline,t_box)
-
- 9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆........]0010
- ü
- 3.libmenu.a-FunktionenzumErstellenundBearbeitenvonMenüs
- Ç
- Popup-Menu aufbauen und ausführen
- (pmexec)
-
- Popup-Menü-Einträge selektieren / deselektieren
- (pmselect, PMSelect, PMDesel)
- 9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆........]0010
-
-
- ü4.libdata.a-FunktionenzumBearbeitenvonDatenstrukturenÇ
-
- Stack-Datenstrukturaufbauenundmanipulieren
- (stacknew,stackdel,stackpush,stackpop,stacktop,stackshow,
- stacktype,stackdepth,stackname,stackempty)
-
-
-
-
-
-
- ê______________________________________________________________________Ç
- êInhaltsverzeichnis InhaltsverzeichnisÇ
-
-
-
- ü5.libetc.a-DiverseFunktionen
-
- ÇProgramm-Aufruf-ArgumenteprüfenundVariablenzuordnen
- (getarg,GetArg)
-
- Systemkommandoausführen
- (system)
-
- Zeichenkettebildschirmgesteuerteditieren
- (editfld)
-
-
- ü6. Anhang
-
- 6.1. Bedeutung der Termcap - Einträge
-
- 6.2. Atari Termcap
-
- 6.3. Atari vt52 - Escape - Sequenzenë
- ü
- 7. Index
- Ç
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆........]0010
-
- ü
- ê______________________________________________________________________
- 8000100001\ABHAENG1.IMG
- ê
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\ABHAENG2.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\ABHAENG3.IMG
-
-
-
-
-
-
-
-
-
-
-
-
- Ç
- Ç
- 8000100001\STR1.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\STR2.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\STR3.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- êlibstrAllgemeineslibstr
- à
-
- Ç
- üNAMEÇ
-
- àlibstr-FunktionenzumVerarbeitenvonZeichenketten
-
-
- üBESCHREIBUNGà
- ü
- ÇDieLibraryülibstrÇstelltFunktionenfürdenUmgangmitundfür
- dieManipulationvonZeichenketten(Strings)zurVerfügung.
- FürdieBenutzungdereinzelnenFunktionenistdieDatei
- ülibstr.incÇzuincluden.
- DieFunktionenunterteilensichinzweiGruppen.Dabeibeginnen
- dieNamenallerFunktionendererstenGruppe'str'bzw.endenauf
- 'str';sieverarbeitenmitdemNullzeichen'\0'abgeschlossene
- Zeichenketten.DieNamenderFunktionenderzweitenGruppebeg-
- innenmit'mem'undbehandelndasNullzeichenênichtÇalsSonder-
- zeichenfürdasZeichenkettenende.
- ü
- Ç
- üDATEIENÇ
-
- libstr.a
- libstr.inc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ü
- ê______________________________________________________________________Ç
- êlibstrstradj, stradjl,stradjrlibstr
- à
- ê
- Ç
- üNAME
- Ç
- à stradj,stradjl,stradjr-Zeichenketteformatieren
-
- ü
- SYNTAX
- Ç
- #include <libstr.inc>
-
- BYTE *stradj (str, dir)
- BYTE *str;
- WORD dir;
-
- BYTE *stradjl (str, dir)
- BYTE *str;
- WORD dir;
-
- BYTE *stradjr (str, dir)
- BYTE *str;
- WORD dir;
-
-
- üBESCHREIBUNGÇ
-
- üstradjlÇ bzw. üstradjÇ richten die Zeichenkette str linksbündig aus.
- üstradjrÇformatiertdieZeichenkettestrrechtsbündig.
- In Abhängigkeit von dir werden dir Leerzeichen vor (hinter)str
- gehängt (dir > 0) oder dir Zeichen (nicht nur leere!) entfernt.
-
-
- üRETURNWERTÇ
-
- Es wird die Adresse der formatierten Zeichenkette zurückgeliefert.
-
-
- üBEMERKUNG
-
- Ç Insbesondere bedeutet stradj? (str, 0 - strlen (str)),daß str
- gelöscht wird. Es muß gewährleistet sein, daß der Platz der
- Zeichenkette str für das Hinzufügen von Leerzeichen ausreicht.
- üstradjÇistalsMakrodefiniertundwirdaufüstradjlÇabgebildet.
- ü
-
- DATEIENÇ
-
- libstr.inc
- libstr.a
- ü
- Ç
- üREFERENZÇ
-
- ü Çstrlen,strctr
-
-
-
-
-
-
- ê
- ______________________________________________________________________
- 9[....◆..◆.◆....◆....◆....◆◆◆◆.◆....◆....◆.........◆....◆....◆........]0010
- êlibstrstrcat,strncat,strcatn,strncatnlibstr
- Ç
-
- ü
- NAME
- Ç
- à strcat, strncat,strcatn,strncatn - Stringsaneinanderhängen
-
-
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- BYTE *strcat (dest, source)
- BYTE *dest, *source;
-
- BYTE *strncat (dest, source,limit)
- BYTE *dest, *source;
- WORDlimit;
-
- BYTE *strcatn (dest, source1, source2, ..., NULP)
- BYTE *dest, *source1, *source2, ...;
-
- BYTE *strncatn (dest, limit,source1, source2, ..., NULP)
- BYTE *dest, *source1, *source2, ...;
- WORDlimit;
-
-
- üBESCHREIBUNGÇ
-
- üstrcatÇhängtdie Zeichenkette source an das Ende der Zeichenkette
- dest.üstrncatÇhängtmaximaldieerstenlimitZeichenvonsource
- andasEndevondest.üstrcatnÇhängtdie Zeichenkette source1 und
- eventuell folgende Zeichenketten source2, ... bis zur leeren
- Zeichenkette NULP(muss immer letzter Parameter sein!) an das Ende
- der Zeichenkette dest.üstrncatnÇarbeitetwieüstrcatnÇ,kopiert
- jedochmaximaldieerstenlimitZeichenjederZeichenkette
- source1,....
-
-
- üRETURNWERT
-
- Ç Es wird die Adresse der Ziel-Zeichenkette destzurückgeliefert.
-
-
- üBEMERKUNG
- Ç
- Ist limit größer als die Länge von sourceoder negativ, so werden
- alle Zeichen von source an dest gehängt.
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strcpy, strncpy, strn0cpy, strcpyn,strncpyn
- ê
-
-
- ______________________________________________________________________
- êlibstrstrchr,strichr,strrchr,strirchrlibstr
-
- ü
-
- NAME
- à
- strchr,strichr,strrchr,strirchr-Adressee.Zeichenssuchen
- Ç
-
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- BYTE *strchr (str, symbol)
- BYTE *str;
- BYTE symbol;
-
- BYTE *strichr (str, symbol)
- BYTE *str;
- BYTE symbol;
-
- BYTE *strrchr (str, symbol)
- BYTE *str;
- BYTE symbol;
-
- BYTE *strirchr (str, symbol)
- BYTE *str;
- BYTE symbol;
-
- ü
- BESCHREIBUNG
- Ç
- üstrchrÇsuchtdie erste Position des Zeichens symbol innerhalb der
- Zeichenkette str ausgehend vom Stringanfang.üstrichrÇunterscheidetü
- ÇdabeinichtzwischenGroß-undKleinbuchstaben.üstrrchrÇsuchtdas
- ersteAuftretenvonsymbolausgehendvomEndedesStringsstr.
- üstrirchrÇdifferenziertdabeinichtzwischenGroß-/Kleinbuchstaben.
-
-
- üRETURNWERTÇ
-
- Die Adresse des Zeichens symbol wird zurückgeliefert oder NULP,
- falls symbol nicht in der Zeichenkette str vorhanden ist.
-
-
- üBEMERKUNGÇ
-
- keine
- ü
-
- DATEIEN
- Ç
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strstr, stristr, strirstr, strrstr,strpbrk,stripbrk,strrpbrk
- strirpbrk
-
-
-
- ê______________________________________________________________________
- êlibstrstrcmp,stricmp,strncmp,strnicmp,strscmp,striscmplibstr
-
- ü
-
- NAME
- à
- strcmp,stricmp,strncmp,strnicmp,
- strscmp,striscmp,strnscmp,strniscmp-Stringsvergleichen
- ü
-
- SYNTAXÇ
-
- #include <libstr.inc>
-
- WORD strcmp (str1, str2)
- BYTE *str1, *str2;
-
- WORD stricmp (str1, str2)
- BYTE *str1, *str2;
-
- WORD strncmp (str1, str2, limit)
- BYTE *str1, *str2;
- WORD limit;
-
- WORD strnicmp (str1, str2, limit)
- BYTE *str1, *str2;
- WORD limit;
-
- WORD strscmp (str1, str2)
- BYTE *str1, *str2;
-
- WORD striscmp (str1, str2)
- BYTE *str1, *str2;
-
- WORD strnscmp (str1, str2,limit)
- BYTE *str1, *str2;
- WORDlimit;
-
- WORD strniscmp (str1, str2,limit)
- BYTE *str1, *str2;
- WORDlimit;
-
-
- üBESCHREIBUNGÇ
-
- üstrcmpÇuntersuchtdie Zeichenketten str1 und str2 werden auf
- Gleichheit bezüglichdereinzelnenZeichen.üstricmpÇvergleicht
- ebenfallsbeideZeichenketten,jedochohnezwischenGroß-und
- Kleinbuchstabenzuunterscheiden.üstrncmpÇvergleichtmaximaldie
- ersten limitZeichen der Zeichenketten str1 und str2.üstrnicmpÇ
- unterscheidetdabei nichtzwischen Groß- und Kleinbuchstaben.
- üstrscmpÇ,üstriscmpÇ,üstrnscmpÇundüstrniscmpÇarbeitenwieüstrcmpÇbzw.
- üstricmpÇbzw.üstrncmpÇbzw.üstrnicmpÇ,jedochwerdenbeidemVerglei-
- chenLeerzeichenundTabsvernachlässigt.
-
- ü
- RETURNWERT
-
- Ç Sind beide Zeichenketten identisch, so wird 0, ansonsten die
- Differenz des letzten verglichenen Zeichenpaares von str1 und str2
- zurückgeliefert.
-
- ü
- ê______________________________________________________________________
- êlibstrstrcmp,stricmp,strncmp,strnicmp,strscmp,striscmplibstr
- Ç
- ê
- ü
- BEMERKUNG
- Ç
- keine
-
-
- üDATEIEN
- Ç
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strmat,strimat,strfnd,strifnd
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstr strcnvl,strcnvul libstrÇ
-
-
- ü
- NAME
- à
- strcnvl.
- strcnvul - Longwert von einer Basis in eine andere Basis wandeln
-
- ü
- SYNTAX
- Ç
- #include <libstr.inc>
-
- BYTE *strcnvl (number, ibase, obase)
- BYTE *number;
- WORD ibase, obase;
-
- BYTE *strcnvul (number, ibase, obase)
- BYTE *number;
- WORD ibase, obase;
-
- ü
- BESCHREIBUNG
- Ç
- üstrcnvlÇ interpretiert den String number als Ziffernfolge der
- Basis ibase und liefert den entsprechende Wert in der Basis obase.
- Der erzeugte String zur Basis obase wird in einem statischen
- Puffer angelegt.üstrcnvulÇinterpretiertdeninnumberenthaltenen
- WertalsunsignedLong.
-
- ü
- RETURNWERT
- Ç
- Die Adresse der (statischen) Zeichenkette wird zurückgeliefert.
-
-
- üBEMERKUNGÇ
-
- Der statische Puffer wird bei jedem Aufruf überschrieben.
-
-
- üBEISPIELÇ
-
- #include <stdio.h>
- #include <libstr.inc>
-
- /*cbase-ZahleinerBasiszueineranderenBasisdarstellen*/
-
- VOID main (argc, argv)
- WORD argc;
- BYTE *argv[];
- {
- WORD ibase = 10, obase = 10;
- WORD nibase, nobase;
- BYTE zahl[100];
- BYTE *bp;
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstr strcnvl libstr
- Ç
-
-
- if (argc == 1)
- {
- fprintf (stderr, "usage: cbase zahl[,ibase[,obase]] ...\n");
- exit (-1);
- }
-
- while (*++argv)
- {
- if (!(bp = strtok (*argv, ",")))
- break;
- strcpy (zahl, bp);
- if ((bp = strtok (NULP, ",")))
- {
- nibase = (WORD) strtol (bp, (BYTE *) NULP, 10);
- if (nibase < 1 || nibase > 38)
- {
- fprintf (stderr, "cbase: Falsche ibase %d\n", nibase);
- continue;
- }
- ibase = nibase;
- if ((bp = strtok (NULP, ",")))
- {
- nobase = (WORD) strtol (bp, (BYTE *) NULP, 10);
- if (nobase < 1 || nobase > 38)
- {
- fprintf (stderr, "cbase: Falsche obase %d\n",
- nobase);
- continue;
- }
- obase = nobase;
- }
- }
- printf ("%s\n", strcnvl (zahl, ibase, obase));
- }
- }
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strtol, strtoul, strtof, strfroml,strfromul
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstrstrcpy,strncpy,strn0cpy,strcpyn,strncpyn,strpcpylibstr
-
- ü
-
- NAME
- Ç
- à strcpy,strncpy,strn0cpy,
- strcpyn,strncpyn,strpcpy -Stringsmiteinanderkopieren
- ü
-
- SYNTAX
-
- Ç #include <libstr.inc>
-
- BYTE *strcpy (dest, source)
- BYTE *dest, *source;
-
- BYTE *strncpy (dest, source, limit)
- BYTE *dest, *source;
- WORD limit;
-
- BYTE *strn0cpy (dest, source, limit)
- BYTE *dest, *source;
- WORD limit;
-
- BYTE *strcpyn (dest, source1, source2, ..., NULP)
- BYTE *dest, *source1, *source2, ...;
-
- BYTE *strncpyn (dest, limit,source1, source2, ..., NULP)
- BYTE *dest, *source1, *source2, ...;
- WORDlimit;
-
- BYTE *strpcpy (dest, start, end)
- BYTE *dest;
- BYTE *start;
- BYTE *end;
-
- ü
- BESCHREIBUNG
-
- Ç üstrcpyÇkopiertdenInhaltderZeichenkette sourceandieAdresse
- derZeichenkettedest.ü strncpyÇ kopiert max. limit Zeichen der
- Zeichenkette source an die Adresse der Zeichenkette dest.üstrn0cpyÇ
- arbeitetwiestrncpy,hängtjedochein'\0'andasEndevondest.
- Die Zeichenkette source1 und eventuell folgende Zeichenketten
- source2, ... bis zur leeren Zeichenkette NULP (muss immer letzter
- Parameter sein!) werden durchüstrcpynÇalle miteinander verkettet,
- an die Adresse der Zeichenkette dest kopiert.
- üstrncpynÇkopiertmaximaldieerstenlimitZeichenjederZeichen-
- ketteandieAdressevondest. üstrpcpyÇkopiertdenInhaltder
- Teilzeichenkette vonsource,diesichzwischendenbeidenAdressen
- startundendbefindet,nachdest.
-
- ü
- RETURNWERT
- Ç
- Es wird die Adresse der Ziel-Zeichenkette dest zurückgeliefert.
-
-
- üBEMERKUNGÇ
-
- keine
-
- ê______________________________________________________________________
- êlibstrstrcpy,strncpy,strn0cpy,strcpyn,strncpyn,strpcpylibstr
-
- ü
-
- DATEIEN
- Ç
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strcat,strncat,strcatn,strncatn
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstrstrcspn,stricspn,strspn,strispnlibstr
- Ç
-
-
- üNAMEÇ
-
- àstrcspn,stricspn,
- strspn,strispn - Bestimmte Zeichen einer Zeichenkette zählen
- Ç
-
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- WORD strcspn (str, set)
- BYTE *str;
- BYTE *set;
-
- WORD stricspn (str, set)
- BYTE *str;
- BYTE *set;
-
- WORD strspn (str, set)
- BYTE *str;
- BYTE *set;
-
- WORD strispn (str, set)
- BYTE *str;
- BYTE *set;
- ü
-
- BESCHREIBUNG
- Ç
- üstrcspnÇ zählt die Anzahl der Zeichen der Zeichenkette str, die
- in der Menge set vorkommenunterBerücksichtigungderGroß-/
- Kleinschreibung.üstricspnÇermitteltdieAnzahlderZeichenohne
- BerücksichtigungderGroß-/Kleinschreibung. üstrspnÇundüstrispnÇ
- arbeitenanalogdazu,liefertjedochdieAnzahlderZeichen,die
- nichtinderMengesetvorkommen.
-
-
- üRETURNWERTÇ
-
- Es wird die Anzahl der Zeichen zurückgeliefert.
-
- ü
- BEMERKUNGÇ
-
- keine
-
- ü
- DATEIEN
- Ç
- libstr.inc
- libstr.a
-
- ü
- REFERENZÇ
-
-
-
-
-
- ê______________________________________________________________________
- êlibstrstrctrlibstr
-
- Ç
- ü
- NAME
- Ç
- à strctr - Zeichenkette zentrieren
-
- Ç
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- BYTE *strctr (str)
- BYTE *str;
-
- ü
- BESCHREIBUNG
- Ç
- ü strctrÇ zentriert den String str durch Ausbalancierenderäußeren
- Leerzeichen, falls vorhanden(Rotation).
-
- ü
- RETURNWERT
-
- Ç Die Adresse der zentrierten Zeichenkette str wird zurückgeliefert.
-
-
- üBEMERKUNG
- Ç
- keine
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- stradjl, stradjr,strnrotr,strnrotl
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstrstrdup,strnduplibstr
-
-
- ü
- NAME
- Ç
- à strdup,strndup - Duplikat einer Zeichenkette erstellen
-
- ü
- SYNTAX
-
- Ç #include <libstr.inc>
-
- BYTE *strdup (str)
- BYTE *str;
-
- BYTE *strndup (str,limit)
- BYTE *str;
- WORDlimit;
-
-
- üBESCHREIBUNG
-
- Ç BeiüstrdupÇwirddie Zeichenkette str in einen dynamisch erzeug-
- ten Puffer kopiert. Die Zeichenkette, die zurückgeliefert wird,
- hat die gleiche Länge wie die übergebene Zeichenkette.
- üstrndupÇhingegenlieferteineKopiederTeilzeichenkettemitden
- maximalerstenlimitZeichenvonstr.
-
- ü
- RETURNWERT
- Ç
- Es wird die Adresse der kopierten Zeichenkette zurückgeliefert
- oder NULP, falls kein Speicherplatz fuer die Zeichenkette reser-
- viertwerden kann (malloc).
-
-
- üBEMERKUNG
-
- ÇWennlimit>strlen(str)ist,dannwirdtrotzdemeinBereich
- vonlimitZeichenreserviert.
-
-
- üDATEIEN
-
- Ç libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strlen, strcpy, malloc
-
-
-
-
-
-
-
- ê
- Ç
-
-
- ê______________________________________________________________________Ç
- êlibstrstremp,strnemplibstr
- Ç
-
- ü
- NAME
- Ç
- àstremp,strnemp - Zeichenkette auf Leerzeichen untersuchenÇ
-
- à
- üSYNTAX
- Ç
- #include <libstr.inc>
-
- BOOL stremp (str)
- BYTE *str;
-
- BOOL strnemp (str,limit)
- BYTE *str;
-
- ü
- BESCHREIBUNG
- Ç
- ü strempÇ testet, ob die Zeichenkette str nur Leerzeichen und tabs
- enthält.
- üstrnempÇuntersuchtmaximaldieerstenlimitZeichenderZeichen-
- kettestraufLeerzeichen.
-
- ü
- RETURNWERT
- Ç
- TRUE, wenn die Zeichenkette str nur Leerzeichen oder tabs enthält,
- FALSE sonst.
-
-
- üBEMERKUNG
- Ç
- keine
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstrstrfnd,strifndlibstr
- Ç
-
- ü
- NAME
- Ç
- àstrfnd,strifnd - Zeichenkette in einerZeichenkettenmengesuchenÇ
-
-
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- WORDstrfnd (pool, str)
- BYTE *pool;
- BYTE *str;
-
- WORDstrifnd (pool, str)
- BYTE *pool;
- BYTE *str;
-
- ü
- BESCHREIBUNG
-
- Ç üstrfndÇ durchsucht einen pool von Strings nach str. Ein pool ist
- eine Aneinanderreihung von nichtleeren Strings. Das Ende wird
- durch einen leeren String markiert.
- Bsp: str0\0str1\0str2\0str3\0...strn\0\0.
- Findet üstrfndÇ einen der Strings im pool, so liefert üstrfndÇ die
- Nummer des Strings (der erste hat die Nummer 0).
- üstrifndÇarbeitetwieüstrfndÇ,jedochohneBerücksichtigungder
- Groß-/Kleinschreibung.
-
-
- üRETURNWERTÇ
-
- Nummer des gefundenen Strings oder sollte üstrfndÇ einen (oderü
- Ç mehrere) String finden die üstrfndÇ nur teilweise vergleichen kann,
- das heißt, üstrfndÇ findet str zwar noch im pool, str ist aber
- kürzer als der String im pool, so wird -1 geliefert.
- Findet üstrfndÇ keinen passenden String im pool, so wird -2 ge-
- liefert.
-
- ü
- BEMERKUNG
-
- Çkeine
-
- ü
- DATEIEN
- Ç
- libstr.inc
- libstr.a
-
- ü
- REFERENZÇ
-
- strmat, strimat,strnmat,strnimat
-
-
-
-
-
- ê______________________________________________________________________
- êlibstr strfroml,strfromul libstrÇ
-
-
- ü
- NAME
- à
- strfroml,strfromul - Longwert in String wandeln
-
- Ç
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- BYTE *strfroml (number, base)
- LONG number;
- WORD base;
-
- BYTE *strfromul (number, base)
- ULONG number;
- WORD base;
-
- ü
- BESCHREIBUNG
- Ç
- üstrfromlÇ liefert den Wert number als String in der Basis base.
- Der String wird in einem statischen Puffer aufbereitet.üstrfromulÇ
- behandeltdenWertinnumberalsunsignedLong.
-
-
- üRETURNWERTÇ
-
- Die Adresse der (statischen) Zeichenkette wird zurückgeliefert.
-
- ü
- BEMERKUNG
- Ç
- Der statische Puffer wird bei jedem Aufruf überschrieben.
-
- ü
- DATEIEN
-
- Ç libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strtol, strtoul, strtof, strconvl,strcnvul
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê
- ______________________________________________________________________
- êlibstr strinv, strninv libstr
- Ç
-
- ü
- NAME
- à
- strinv, strninv - Groß- in Kleinbuchstaben wandeln und umgekehrt
- Ç
-
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- BYTE *strinv (str)
- BYTE *str;
-
- BYTE *strninv (str, limit)
- BYTE *str;
- WORD limit;
-
- ü
- BESCHREIBUNG
- Ç
- ü strinvÇ wandelt alle (ASCII!) Kleinbuchstaben der Zeichenkette str
- in Großbuchstaben und alle Großbuchstaben in Kleinbuchstaben um.
- üstrninvÇ betrachtet dabei die maximal ersten limit Zeichen von str.
-
- ü
- RETURNWERT
- Ç
- Die Adresse der geänderten Zeichenkette str wird zurückgeliefert.
-
- ü
- BEMERKUNG
- Ç
- keine
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strlwr, strnlwr, strlwrg, strnlwrg, strupr, strnupr, strwupr,
- struprg, strnuprg
-
- ê
-
-
-
-
-
-
-
-
-
-
-
-
-
- ______________________________________________________________________
- êlibstrstrlenlibstr
-
- ü
-
- NAMEÇ
-
- à strlen - Länge einer Zeichenkette berechnen
-
- ü
- SYNTAX
- Ç
- #include <libstr.inc>
-
- WORD strlen (str)
- BYTE *str;
-
- ü
- BESCHREIBUNG
- Ç
- üstrlenÇberechnetdie Länge der Zeichenkette str =Anzahlder
- ZeichenohnedemNullzeichen.
-
- ü
- RETURNWERT
- Ç
- Es wird die Länge der Zeichenkette zurückgeliefert.
-
- ü
- BEMERKUNG
-
- Çkeine
-
- ü
- DATEIEN
- Ç
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstrstrlwr,strnlwr,strlwrg,strnlwrglibstr
-
- à
- Ç
- üNAMEÇ
-
- à strlwr,strnlwr,
- strlwrg,strnlwrg - Zeichenkette in Kleinbuchstaben wandeln
-
- ü
- SYNTAX
- Ç
- #include <libstr.inc>
-
- BYTE *strlwr (str)
- BYTE *str;
-
- BYTE *strnlwr (str,limit)
- BYTE *str;
- WORDlimit;
-
- BYTE *strlwrg (str)
- BYTE *str;
-
- BYTE *strnlwrg (str,limit)
- BYTE *str;
- WORDlimit;
-
-
- üBESCHREIBUNGÇ
-
- üstrlwrÇwandeltalle(ASCII!)BuchstabenderZeichenkettestrin
- Kleinbuchstabenum.üstrnlwrÇbetrachtetdabeidiemaximalersten
- limitZeichenvonstr.BeiüstrlwrgÇwerdenauchdiedeutschen
- Umlaute(Ä,Ö,Ü)durchä,ö,üersetzt.üstrnlwrgÇbetrachtet
- wiederumnurdiemaximalerstenlimitZeichenvonstr.
-
- ü
- RETURNWERT
- Ç
- Die Adresse der geändertenZeichenkette str wird zurückgeliefert.
-
-
- üBEMERKUNG
- Ç
- keine
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strupr, strnupr, strwupr, struprg,strnuprg
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstrstrmat,strimat,strnmat,strnimatlibstr
- Ç
-
-
- üNAMEÇ
- à
- strmat,strimat,strnmat,strnimat - zweiZeichenketten matchen
-
- ü
- SYNTAX
- Ç
- #include <libstr.inc>
-
- WORD strmat (s, m)
- BYTE *s;
- BYTE *m;
-
- WORD strimat (s, m)
- BYTE *s;
- BYTE *m;
-
- WORD strnmat (s, m)
- BYTE *s;
- BYTE *m;
-
- WORD strnimat (s, m)
- BYTE *s;
- BYTE *m;
-
- ü
- BESCHREIBUNG
-
- Ç üstrmaÇt versuchtdieZeichenkettesmitdemMustermzumatchen.
- üstrimatÇmatchedohneGroß-/Kleinbuchstabenzuunterscheiden.ü
- strnmatÇerkenntdabeinebendemNullbyteaucheinNewline'\n'als
- Stringende.üstrnimatÇarbeitetanalog,jedochohneGroß-/Kleinbuch-
- stabenzuunterscheiden.
-
- üFolgende matches sind möglich:Ç
-
- ? : matched ein bel. Zeichen mit 0.
- * : matched eine bel. Zeichenkette mit 0.
- . : matched eine Anzahl gleicher Zeichen mit 0.
- % : matched eine bel. Ziffer mit 0.
- @ : matched einen bel. Kleinbuchstaben mit 0.
- $ : matched einen bel. Grossbuchstaben mit 0.
- & : matched einen bel. Buchstaben mit 0.
- ! : matched ein bel. Metazeichen mit 0.
- \\: das folgende Metazeichen verliert seine Wirkung.
- [abc]: das zu matchende Zeichen muss a oder b oder c
- sein.
- [-ab]: das zu matchende Zeichen muss ungleich a und
- ungleich b sein.
- [a:z]: das zu matchende Zeichen muss zwischen a und
- z (einschliesslich) liegen (a <= z <= b).
- [-a:z]: das zu matchende Zeichen darf nicht zwischen
- a und z liegen.
- ü
-
-
-
-
-
- ê______________________________________________________________________
- êlibstrstrmat,strimat,strnmat,strnimatlibstr
- Ç
- ü
-
- Beispiele:
- Ç
- s m
- eeefeee eeefeee
- eeefeee ee??eee
- eeefeee ee*
- ee* ee\\*
- eeefeee ee*f*
- eeefeee eee[a:z]e*
- eeefeee eee[-g:z]e*
- eeefeee eee[afzg]e*
- eeefeee eee[-abc]e*
- eeeeeff e.ff
-
- ü
- RETURNWERT
- Ç
- 0, bei Gleichheit, bzw. wenn der String s durch m gematched werden
- kann, sonst -999 bei falschem Match (Metazeichen!) oder die Dif-
- ferenzdes letzten verglichenen Zeichenpaares von s und m.
-
-
- üBEMERKUNGÇ
-
- Das Metazeichen '.' darf nicht am Anfang des Strings m stehen,
- da ja (s-1) dann noch nicht existiert.
- BeiüstrimatÇundüstrnimatÇwerdennurdieASCII-Buchstabenohne
- casebetrachtet,keineUmlaute.
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strcmp, strncmp, stricmp, strnicmp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________Ç
- êlibstrstrpbrk,stripbrk,strrpbrk,strirpbrklibstr
- Ç
-
- ü
- NAME
- à
- strpbrk,stripbrk,
- strrpbrk,strirpbrk - TeileinerZeichenkette suchen
-
- ü
- SYNTAX
- Ç
- #include <libstr.inc>
-
- BYTE *strpbrk (str, set)
- BYTE *str;
- BYTE *set;
-
- BYTE *stripbrk (str, set)
- BYTE *str;
- BYTE *set;
-
- BYTE *strrpbrk (str, set)
- BYTE *str;
- BYTE *set;
-
- BYTE *strirpbrk (str, set)
- BYTE *str;
- BYTE *set;
-
-
- üBESCHREIBUNGÇ
-
- ü strpbrkÇ liefert die Adresse der Teil-Zeichenkette von strzurück,
- deren erstes Zeichen im set vorkommt. Gesucht wird ab dem ersten
- Zeichen des Strings.üstripbrkÇunterscheidetdabeinichtzwischen
- Groß-/Kleinbuchstaben.üstrrpbrkÇundüstrirpbrkÇarbeitenanalog
- dazu,beginnenjedochmitderSucheabdemletztenZeichenvon
- str.
-
-
- üRETURNWERTÇ
-
- Die Adresse der Teil-Zeichenkette von str oder NULP, falls keines
- der Zeichen von set in str vorhanden ist.
-
-
- üBEMERKUNG
-
- ÇBeiüstripbrkÇundüstrirpbrkÇwerdennurdieASCIIBuchstabenohne
- casebetrachtet.
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strstr,stristr,strrstr,strirstr,strchr,strichr,strrchr
-
- ê______________________________________________________________________
- êlibstrstrpos,stripos,strrpos,strirposlibstr
-
- Ç
-
- üNAME
- Ç
- à strpos,stripos,
- strrpos,strirpos - Position eines Zeichens imString suchen
-
- Ç
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- WORD strpos (str, symbol)
- BYTE *str;
- BYTE symbol;
-
- WORD stripos (str, symbol)
- BYTE *str;
- BYTE symbol;
-
- WORD strrpos (str, symbol)
- BYTE *str;
- BYTE symbol;
-
- WORD strirpos (str, symbol)
- BYTE *str;
- BYTE symbol;
-
-
- üBESCHREIBUNG
-
- Ç üstrposÇsuchtdie erste Position des Zeichens symbol innerhalb der
- Zeichenkette str ausgehend vom Stringanfang.üstriposÇdifferenziert
- beiderSuchenichtzwischenGroß-/Kleinbuchstaben(ASCII).
- üstrrposÇundüstrirposÇarbeitenanalog,suchenjedochabdemString-
- andevonstr.
-
-
- üRETURNWERT
-
- Ç Die Position des Zeichens symbol wird zurückgeliefert oder -1,
- falls symbol nicht in der Zeichenkette str vorhanden ist. Dabei
- bedeutet 0 die erste Position!
-
- ü
- BEMERKUNG
- Ç
- keine
-
- ü
- DATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strchr, strrchr, strichr, strirchr
-
-
- ê______________________________________________________________________
- êlibstrstrrevlibstr
-
-
- ü
- NAME
- à
- strrev - Eine Zeichenkette umdrehen (an sich selbst spiegeln)
-
- Ç
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- BYTE *strrev (str)
- BYTE *str;
-
-
- üBESCHREIBUNGÇ
-
- üstrrevÇliefertdie Zeichenkette str an sich selbst gespiegelt zu-
- rück,d.h. das erste Zeichen wird zum letzten und das letzte zum
- ersten.
-
-
- üRETURNWERTÇ
-
- Es wird die Adresse der gespiegelten Zeichenkette zurückgeliefert.
-
-
- üBEMERKUNG
- Ç
- keine
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- ê
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ______________________________________________________________________
- êlibstr strrotl, strrotr, strnrotl, strnrotr libstr
- Ç
-
-
- üNAMEÇ
- à
- strrotl, strrotr, strnrotl, strnrotr - Zeichenkette rotieren
-
- Ç
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- BYTE *strrotl (str)
- BYTE *str;
-
- BYTE *strrotr (str)
- BYTE *str;
-
- BYTE *strnrotl (str, limit)
- BYTE *str;
-
- BYTE *strnrotr (str, limit)
- BYTE *str;
-
-
- üBESCHREIBUNGÇ
-
- üstrrotlÇ rotiert die Zeichenkette str um ein Zeichen nach links,
- üstrrotrÇ um ein Zeichen nach rechts. üstrnrotlÇ und üstrnrotrÇ arbeiten
- analog, rotieren str jedoch um maximal limit Zeichen.
-
-
- üRETURNWERT
-
- Ç Es wird die Adresse der formatierten Zeichenkette zurückgeliefert.
-
-
- üBEMERKUNGÇ
-
- Ist limit = strlen (str), so ist der rotierte String str wieder
- gleich dem nicht rotierten.
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
- ü
- REFERENZ
- Ç
- strlen, stradj, strctr
-
-
-
-
-
-
-
-
- ê
-
- ______________________________________________________________________
- êlibstrstrrpl,strirpl,strnrpl,strnirpllibstr
-
- Ç
- ü
- NAME
- Ç
- à strrpl,strirpl,
- strnrpl,strnirpl - Zeichenmuster in einer Zeichenkette ersetzen
-
- Ç
- üSYNTAX
-
- Ç #include <libstr.inc>
-
- WORD strrpl (string, ptrn, rpl)
- BYTE *string, *ptrn, *rpl;
-
- WORD strirpl (string, ptrn, rpl)
- BYTE *string, *ptrn, *rpl;
- à
- Ç WORD strnrpl (string, ptrn, rpl,limit)
- BYTE *string, *ptrn, *rpl;
- WORDlimit;
-
- WORD strnirpl (string, ptrn, rpl,limit)
- BYTE *string, *ptrn, *rpl;
- WORDlimit;
- ê
-
- üBESCHREIBUNG
-
- Ç üstrrplÇ versucht in der Zeichenkette string alle Zeichenmuster ptrn
- durch rpl zu ersetzen.üstrirplÇvernachlässigtbeiderSuchevon
- ptrndieUnterscheidungvonGroß-/Kleinbuchstaben.üstrnrplÇund
- üstrnirplÇersetzendiemaximalerstenlimitZeichenmusterptrn.
-
-
- üRETURNWERTÇ
-
- Es wird die Anzahl der Ersetzungen von rpl zurückgeliefert.
-
- ü
- BEMERKUNGÇ
-
- keine
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a (strstr, strlen, stradjl, strncpy)
-
-
- üREFERENZÇ
-
- strstr, strlen, stradjl, strncpyê
-
-
-
-
-
-
-
- ______________________________________________________________________
- êlibstrstrset,strnset,strsset,strspc,strnspc,memsetlibstr
-
- Ç
-
- üNAMEÇ
- à
- strset,strnset,strsset,strspc,
- strnspc,memset - Zeichen eines Strings durch e. Zeichen ersetzen
-
- Ç
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- BYTE *strset (str, chr)
- BYTE *str;
- BYTE chr;
-
- BYTE *strnset (str, chr, limit)
- BYTE *str;
- BYTE chr;
- WORD limit;
-
- BYTE *strsset (str1, str2)
- BYTE *str1;
- BYTE *str2;
-
- BYTE *strspc (str)
- BYTE *str;
-
- BYTE *strnspc (str, limit)
- BYTE *str;
- WORD limit;
-
- BYTE *memset (str, chr, limit)
- BYTE *str;
- BYTE chr;
- WORD limit;
-
- ü
- BESCHREIBUNGÇ
-
- üstrsetÇersetztalleZeichen der Zeichenkette str durch das Zeichen
- chr.üstrnsetÇersetztdiemaximalerstenlimitZeichenvonstr
- durchchr.üstrspcÇersetztalleZeichenvonstrdurchLeerzeichen.
- üstrnspcÇhingegenersetztnurdiemaximalerstenlimitZeichenvon
- strdurchLeerzeichen. ümemsetÇarbeitetwieüstrnsetÇ,beachtetje-
- dochnichtdasNullzeichen'\0'alsEnde,sondernersetztêgenauÇ
- limitZeichen.üstrssetÇ füllt den String str1 solange mit der
- Zeichenkette str2, bis das Ende von str1 erkannt wurde.
-
-
-
- üRETURNWERTÇ
-
- Es wird die Adresse der Zeichenkette str (bzw.str1)zurückgelie-
- fert.
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstrstrset,strnset,strsset,strspc,strnspc,memsetlibstr
- Ç
-
-
- üBEMERKUNGÇ
-
- Beidenstr...-FunktionenwirddasNullzeichenamEndevonstr
- nichtersetzt.
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstr strsort, strisort, strrsort, strirsort libstrÇ
-
-
-
- üNAMEÇ
-
- à strsort, strisort,
- strrsort, strirsort - Zeichen e. Zeichenkette sortierenÇ
-
-
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- BYTE *strsort (str)
- BYTE *str;
-
- BYTE *strisort (str)
- BYTE *str;
-
- BYTE *strrsort (str)
- BYTE *str;
-
- BYTE *strirsort (str)
- BYTE *str;
-
-
- üBESCHREIBUNGÇ
-
- üstrsortÇ sortiert die Zeichen der Zeichenkette str nach ASCII-
- Ordnung und liefert einen Pointer auf die sortierte Zeichenkette
- str zurück. Bei üstrisortÇ wird nicht zwischen Groß-/Kleinbuchstaben
- unterschieden.ü strrsortÇ und üstrirsortÇ haben die gleiche Funktiona-
- lität wieü strsortÇ bzw. üstrisortÇ, liefern jedoch eine umgekehrt
- sortierte Zeichenkette zurück.
-
- ü
- RETURNWERTÇ
-
- Es wird die Adresse der sortierten Zeichenkette str zurückgelie-
- fert.
-
-
- üBEMERKUNGÇ
-
- Als Sortieralgorithmus liegt 'Bubblesort' zugrunde (nicht sehr
- schnell!). üstrrsortÇ und üstrirsortÇ sind als Macros in libstr.inc
- definiert und werden auf üstrsortÇ (bzw. üstrisortÇ) und üstrrevÇ abge-
- bildet.
-
-
- DATEIEN
-
- libstr.inc
- libstr.a
-
-
- REFERENZ
-
- strrev
-
-
-
- ê______________________________________________________________________
- êlibstrstrstr,stristr,strrstr,strirstrlibstr
-
-
- ü
- NAME
- à
- strstr,stristr,
- strrstr,strirstr - Adresse einer Zeichenkette suchen
-
- ü
- SYNTAX
-
- Ç #include <libstr.inc>
-
- BYTE *strstr (str, pattern)
- BYTE *str;
- BYTE *pattern;
-
- BYTE *stristr (str, pattern)
- BYTE *str;
- BYTE *pattern;
- ü
- Ç BYTE *strrstr (str, pattern)
- BYTE *str;
- BYTE *pattern;
-
- BYTE *strirstr (str, pattern)
- BYTE *str;
- BYTE *pattern;
-
-
- üBESCHREIBUNG
-
- Ç üstrstrÇsuchtdie erste Position der Zeichenkette pattern innerhalb
- der Zeichenkette str ausgehend vom Stringanfang.üstristrÇunter-
- scheidetdabeinichtzwischenGroß-/Kleinbuchstaben.üstrrstrÇund
- üstrirstrÇsuchendabeiabdemEndederZeichenkettestr.
-
-
- üRETURNWERT
-
- Ç Die Adresse der Zeichenkette pattern wird zurückgeliefert oder
- '\0', falls pattern nicht in der Zeichenkette str vorhanden ist.
-
-
- üBEMERKUNGÇ
-
- keine
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a (strlen, strncmp, strchr)
-
- ü
- REFERENZÇ
-
- strchr,strichr,strrchr,strirchr
-
-
-
- ê
- ______________________________________________________________________
- êlibstr strtok libstr
-
- Ç
- ü
- NAME
- Ç
- à strtok - Strings in Token aufteilenÇ
-
-
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- BYTE *strtok (str, delim)
- BYTE *str;
- BYTE *delim;
-
-
- üBESCHREIBUNGÇ
-
- üstrtokÇ liefert die Adresse einer Teil-Zeichenkette von str zurück,
- die durch zwei Zeichen aus der Menge delim eingegrenzt wird.
- Bei Übergabe von NULP als str wird von dem letzten Teilstring
- (Token) aus nach einem weiteren Token gesucht.
-
- ü
- RETURNWERT
- Ç
- Die Adresse der Teil-Zeichenkette (Token) von str oder NULP,
- falls kein weiterer Token gefunden werden kann.
-
-
- üBEMERKUNGÇ
-
- Es wird ein statischer Pointer auf str angelegt, so daß bei
- Übergabe von NULP als str ab diesem Pointer weiter gesucht wird.
-
- ü
- DATEIEN
- Ç
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strfnd, strifnd, strmat, strimat
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstr strtol, strtoul, strtof libstr
-
- Ç
-
- üNAMEÇ
-
- à strtol, strtoul, strtof - Zeichemketten in Zahlen konvertierenÇ
-
- ü
- SYNTAX
- Ç
- #include <libstr.inc>
-
- LONG strtol (number, nptr, base)
- BYTE *number;
- BYTE **nptr;
- WORD base;
-
- ULONG strtuol (number, nptr, base)
- BYTE *number;
- BYTE **nptr;
- WORD base;
-
- DOUBLE strtof (number, nptr, base)
- BYTE *number;
- BYTE **nptr;
- WORD base;
-
-
- üBESCHREIBUNGÇ
-
- üstrtolÇ interpretiert den String number als Ziffernfolge und lie-
- fert den entsprechende Wert als LONG. Mit base wird die Basis der
- Zahl festgelegt (Standart ist 10). nptr kann NULL sein (dann nicht
- beachtet) oder eine gültige Adresse eines BYTE Pointers (dann wird
- in nptr die Adresse des Strings number ohne die interpretierten
- Ziffern geschrieben). üstrtoulÇ liefert den interpretierten Wert als
- unsigned long (ULONG). üstrtofÇ wertet den String in Hinsicht auf
- Dezimalwerte aus und liefert den Wert als DOUBLE zurück.
-
-
- üRETURNWERTÇ
-
- Der interpretierte Wert als LONG, ULONG bzw. als DOUBLE wird
- zurückgeliefert.
-
-
- üBEMERKUNGÇ
-
- keine
-
- ü
- DATEIEN
- Ç
- libstr.inc
- libstr.a
-
- ü
- REFERENZ
- Ç
- strfroml,strcnvl
-
- ê
- ______________________________________________________________________
- êlibstr strtrm, strtrml, strtrmr, strptrm, strptrml, strptrmr libstr
-
- Ç
-
- üNAMEÇ
- à
- strtrm, strtrml, strtrmr,
- strptrm, strptrml, strptrmr - Zeichen aus Zeichenkette entfernen
-
- Ç
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- BYTE *strtrm (str)
- BYTE *str;
-
- BYTE *strtrml (str)
- BYTE *str;
-
- BYTE *strtrmr (str)
- BYTE *str;
-
- BYTE *strptrm (str, junk)
- BYTE *str;
- BYTE *junk;
-
- BYTE *strptrml (str, junk)
- BYTE *str;
- BYTE *junk;
-
- BYTE *strptrmr (str, junk)
- BYTE *str;
- BYTE *junk;
-
-
- üBESCHREIBUNGÇ
-
- ü strtrmÇ entfernt alle führenden und abschließenden Leerzeichen und
- Tabs von dem String str. üstrtrmlÇ und üstrtrmrÇ entfernen nur alle
- führenden bzw. alle abschließenden Leerzeichen und Tabs von str.
- üstrptrmÇ,ü strptrmlÇ und üstrptrmrÇ arbeiten analog, entfernen jedoch
- alle Zeichen von str, die sich auch in der Menge junk befinden.
-
-
- üRETURNWERTÇ
-
- Es wird die Adresse der Zeichenkette str zurückgeliefert.
-
-
- üBEMERKUNGÇ
-
- keine
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
- ü
-
-
- ê______________________________________________________________________
- êlibstr strtrm, strtrml, strtrmr, strptrm, strptrml, strptrmr libstr
-
- ü
-
- REFERENZ
- Ç
- strchr
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstrstrupr,strnupr,strwupr,struprg,strnuprglibstr
-
- à
- Ç
- üNAMEÇ
-
- à strupr,strnupr,strwupr,
- struprg,strnuprg - Zeichenkette in Großbuchstaben wandeln
-
- ü
- SYNTAX
- Ç
- #include <libstr.inc>
-
- BYTE *strupr (str)
- BYTE *str;
-
- BYTE *strnupr (str,limit)
- BYTE *str;
- WORDlimit;
-
- BYTE *strwupr (str)
- BYTE *str;
-
- BYTE *struprg (str)
- BYTE *str;
-
- BYTE *strnuprg (str,limit)
- BYTE *str;
- WORDlimit;
-
-
- üBESCHREIBUNGÇ
-
- üstruprÇwandeltalle(ASCII!)BuchstabenderZeichenkettestrin
- Großbuchstabenum.üstrnuprÇbetrachtetdabeidiemaximalersten
- limitZeichenvonstr.üstrwuprÇbetrachtetnurdieWortanfänge
- jedenWortes.WobeieinWortamAnfangderZeichenketteundnach
- einerbeliebigenAnzahlvonLeerzeichenoderTabsoderNewlines
- beginnt.BeiüstruprgÇwerdenauchdiedeutschenUmlaute(ä,ö,ü)
- durchÄ,Ö,Üersetzt.üstrnuprgÇbetrachtetwiederumnurdie
- maximalerstenlimitZeichenvonstr.
-
- ü
- RETURNWERT
- Ç
- Die Adresse der geändertenZeichenkette str wird zurückgeliefert.
-
-
- üBEMERKUNG
- Ç
- keine
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strlwr, strnlwr, strlwrg,strnlwrg
- ê______________________________________________________________________
- êlibstr substr, subnstr libstr
- Ç
-
-
- üNAMEÇ
- à
- substr, subnstr - Teilstring kopieren
-
- Ç
- üSYNTAXÇ
-
- #include <libstr.inc>
-
- BYTE *substr (dest, source, start, end)
- BYTE *dest, *source;
- WORD start, end;
-
- BYTE *subnstr (dest, source, start, length)
- BYTE *dest, *source;
- WORD start, length;
-
-
- üBESCHREIBUNG
-
- Ç ü substrÇ kopiert den Teilstring der Zeichenkette source ab der
- Position start bis zur Position end in die Zeichenkette dest.
- üsubnstrÇ kopiert den Teilstring der Zeichenkette source ab der
- Position start mit der Länge length in die Zeichenkette dest.
-
-
- üRETURNWERTÇ
-
- Es wird die Adresse der Ziel-Zeichenkette dest zurückgeliefert.
-
-
- üBEMERKUNGÇ
-
- keine
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
-
- üREFERENZÇ
-
- strcpy, strncpy, strn0cpy, strcpyn, strncpyn
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibstr memchr, memcmp, memcpy libstr
-
- Ç
-
- üNAMEÇ
- à
- memchr, memcmp, memcpy - Adreßbereiche kopieren und vergleichen
-
- Ç
- üSYNTAX
-
- Ç #include <libstr.inc>
-
- BYTE *memchr (buf, c, cnt)
- BYTE *buf;
- BYTE c;
- WORD cnt;
-
- WORD memcmp (mem1, mem2, len)
- BYTE *mem1;
- BYTE *mem2;
- WORD len;
-
- BYTE *memcpy (dest, source, len)
- BYTE *dest;
- BYTE *source;
- UWORD len;
-
-
- üBESCHREIBUNG
-
- Ç ü memchrÇ durchsucht ab der Adresse buf maximal len Zeichen nach dem
- Auftreten des Zeichens c.ü memcmpÇ untersucht len Bytes ab Adresse
- mem1 mit den len Bytes ab Adresse mem2 auf Gleichheit. ümemcpyÇ
- kopiert exakt len Bytes ab Adresse source an die Adresse dest.
-
-
- üRETURNWERTÇ
-
- ü memchrÇ returned mit der Adresse des gefundenen Zeichens oder NULP.
- ü memcmp Çliefert 0, wenn beide Adressbereiche identisch sind, sonst
- mit der Differenz des letzten verglichenen Zeichenpaares.ü memcpyÇ
- liefert die Adresse des Zielbereiches dest zurück.
-
-
- üBEMERKUNGÇ
-
- Die Funktionenü memchrÇ,ü memcmpÇ undü memcpyÇ arbeiten analog zuü strchrÇ
- ü strcmp Çundü strcpyÇ, erkennen als Ende jedoch nicht das Nullbyte,
- sondern bearbeiten genau len Bytes.
-
-
- üDATEIENÇ
-
- libstr.inc
- libstr.a
-
- ü
- REFERENZ
- Ç
- strchr, strcmp, strcpy
-
-
- ê______________________________________________________________________Ç
- 8000100001\TERM1.IMG
- Ç
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\TERM2.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\TERM3.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê
- êlibtermtgetentlibterm
-
- ü
-
- NAME
- à
- tgetent - Termcap-Eintrag aus Termcap-Datei lesen
-
- Ç
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- WORD tgetent (capab, termname)
- BYTE *capab;
- BYTE *termname;
-
-
- üBESCHREIBUNGÇ
-
- ütgetentÇliestdieTermcap-DateiundsuchtnachdemEintragfür
- denübergebenentermname.DerPfadderTermcap-Dateiwirdimall-
- gemeinenüberdieEnvironment-VariableüTERMCAPÇangegeben.Ist
- dieseVariablenichtvorhanden,sowirdzuerstinderDirectory
- d:\etc\,dannin\etc\undsonstinderaktuellenDirectorynach
- derTermcap-DateiütermcapÇgesucht(für?NIXSysteme/etc/termcap).
- oderinderaktuellenDirectoryunterdemNamentermcapoderüber
- IstTERMCAPkeinPfad,sountersuchtütgetentÇdieTERMCAPVariable,
- obsiedirektdenTermcap-Eintragenthält.
- Der zu termname passende Eintrag wirdgesucht und wenn gefunden,
- in den Puffer capab (muss min.1024 Bytes gross sein) geschrieben.
- Zusätzlich wird ein Pointer auf capab erzeugt, der von den
- anderen Termcap-Funktionen benutzt wird.
-
-
- üRETURNWERTÇ
-
- 1, wenn der Eintrag in den Puffer capab gelesen werden konnte,
- 0, wenn der Eintrag und -1, wenn das Termcap-File nicht gefunden
- werden konnte.
-
- ü
- BEMERKUNGÇ
-
- keine
-
-
- üDATEIENÇ
-
- libterm.inc
- libterm.a
- libstr.a (strncmp, strcpy, strcmp, strlen)
- (getenv, fgets, fopen, fclose)
-
-
- üREFERENZÇ
-
- tgetnum,tgetstr,tgetflag
-
-
-
-
-
- ê______________________________________________________________________
- êlibtermtgetnumlibterm
-
-
- ü
- NAME
- Ç
- àtgetnum - Numerischen Termcap-Eintrags-Feld-Wert suchenÇ
-
-
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- WORD tgetnum (id)
- BYTE *id;
-
-
- üBESCHREIBUNGÇ
-
- Die mit ütgetentÇ gelesene Termcap-Info kann mitü tgetnumÇ aufnume-
- rische Werte angewendet werden. Der Wert des mit id bezeichneten
- Feldes wird zurückgeliefert.
-
-
- üRETURNWERT
-
- Ç Wert des Feldes id, oder -1 im Fehlerfall.
-
-
- üBEMERKUNG
-
- Çkeine
-
- ü
- DATEIEN
- Ç
- libterm.inc
- libterm.a
- libstr.a (strncmp)
-
-
- üREFERENZ
- Ç
- tgetent,tgetstr,tgetflag
-
- ü
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibtermtgetflaglibterm
-
- Ç
-
- üNAMEÇ
-
- à tgetflag - Vorhandensein eines Termcap-Eintrags-Feldes testen
-
- Ç
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- WORD tgetflag (id)
- BYTE *id;
-
-
- üBESCHREIBUNGÇ
-
- Die mit ütgetent Çgelesene Termcap-Info kann mit ütgetflagÇ auf das
- Vorhandensein eines Feldes getestet werden.
-
-
- üRETURNWERTÇ
-
- Ist das Feld im gelesen Termcap-Eintrag vorhanden, so wird 1
- zurückgeliefert. 0 wird geliefert, wenn das Feld nicht gefunden
- wurde, -1 im Fehlerfall.
-
-
- üBEMERKUNGÇ
-
- keine
-
-
- üDATEIENÇ
-
- libterm.inc
- libterm.a
- libstr.a (strncmp)
-
-
- üREFERENZÇ
-
- tgetent,tgetstr,tgetnum
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibtermtgetstrlibterm
-
- Ç
- ü
- NAME
- Ç
- à tgetstr - Alphanumerischen Termcap-Eintrags-Feld-Wert suchen
-
- Ç
- üSYNTAXÇ
-
- #include <libterm.inc>
- #include <stdio.h>
-
- WORD tgetstr (id, area)
- BYTE *id;
- BYTE **area;
-
- ü
- BESCHREIBUNG
- Ç
- Die mitü tgetentÇ gelesene Termcap-Info, kann mitü tgetstrÇ auf alpha-
- numerische Felder angewendet werden. Die hinter dem Feldid ste-
- hende Zeichenkette wird in area geschrieben und istzusätzlich
- auch der Rückgabewert.
-
-
- üRETURNWERTÇ
-
- Wert des Feldes id, oder NULL im Fehlerfall.
-
-
- üBEMERKUNGÇ
-
- keine
-
-
- üDATEIENÇ
-
- libterm.inc
- stdio.h
- libterm.a
- libstr.a (strncmp)
-
-
- üREFERENZÇ
-
- tgetnum,tgetflag,tgetent
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibtermtgoto libterm
-
- Ç
- ü
- NAME
- Ç
- à tgoto - Cursor-Adressierungs-String erstellen
-
- ü
- SYNTAX
- Ç
- #include <libterm.inc>
- #include <stdio.h>
-
- BYTE *tgoto (cm, destcol, destline)
- BYTE *cm;
- WORD destcol;
- WORD destline;
-
-
- üBESCHREIBUNGÇ
-
- ütgotoÇ ermittelt anhand des CursorMotionStrings cm und der über-
- gebenen Koordinaten destcol und destline die Escape-Sequenz zum
- Adressieren des Cursors.
-
-
- üRETURNWERTÇ
-
- Pointer auf die erzeugte lokal statische Escape-Sequenz oder
- "OOPS", falls ein Fehler aufgetreten ist (Parameter!).
-
-
- üBEMERKUNGÇ
-
- keine
-
-
- üDATEIENÇ
-
- libterm.inc
- stdio.h
- libterm.a
-
-
- üREFERENZÇ
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibtermtputs libterm
-
- Ç
-
- üNAMEÇ
- à
- tputs - String auf Bildschirm ausgeben
-
- Ç
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- WORD tputs (cp, affcnt, outc)
- REGISTER BYTE *cp;
- WORD affcnt;
- WORD (*outc)();
-
-
- üBESCHREIBUNÇG
-
- ütputs Çgibt die Zeichenkette cp unter Verwendung der Funktion outc
- auf dem Bildschirm aus. (Bedeutung von affcnt ?)
-
-
- üRETURNWERTÇ
-
- Ohne Bedeutung.
-
-
- üBEMERKUNG
- Ç
- keine
-
-
- üDATEIENÇ
-
- libterm.inc
- libterm.a
-
-
- üREFERENZ
-
-
-
-
-
-
-
-
-
-
- Ç
-
-
-
-
-
-
-
-
-
- ê
- ______________________________________________________________________
- êlibtermt_initlibterm
-
- ü
-
- NAME
- à
- t_init - Terminal-Variablen und Terminal-Mode initialisieren
-
- Ç
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- WORD t_init ()
-
-
- üBESCHREIBUNGÇ
-
- üt_initÇ liest die Termcap (durch tgetent) und baut eine interne
- Struktur auf, um die t_-nums und t_-Strings zu initialisieren,
- damit sie von den t_xxx-Funktionen benutzt werden können. Unter
- ?NIX-Systemen wird zusätzlich das Terminal-IO aufRaw-Mode
- gesetzt.
-
-
- üRETURNWERTÇ
-
- 0, wenn die Variablen initialisiert werden konnten und
- -1, wenn tgetent einen Fehler beim Lesen der Termcap geliefert
- hat.
-
-
- üBEMERKUNG
-
- Çkeine
-
-
- üDATEIENÇ
-
- libterm.inc
- libterm.a
- libstr.a (strcpy)
- (getenv, malloc)
-
-
- üREFERENZÇ
-
- üÇt_exit,tgetent
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibtermt_exitlibterm
-
-
- Ç
- üNAMEÇ
- à
- t_exit - Terminal-Mode zuruecksetzen
- Ç
-
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- VOID t_exit ()
-
-
- üBESCHREIBUNGÇ
-
- üt_exitÇ setzt den Terminal-Mode zurück (in den Zustand vor dem
- t_init()-Aufruf) und sendet den Terminal-Reinitialisierungs-
- String t_ir.
-
-
- üBEMERKUNGÇ
-
- keine
-
-
- üDATEIENÇ
-
- libterm.inc
- libterm.a
-
-
- üREFERENZÇ
-
- t_init
- ë
-
- Ç
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibtermt_rawon,t_rawoff libterm
-
- Ç
-
- üNAMEÇ
-
- à t_rawon,t_rawoff - TerminalzwischenNormalundRaw umschaltenÇ
-
-
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- VOID t_rawon ()
- VOID t_rawoff ()
-
-
- üBESCHREIBUNG
-
- Ç üt_rawon Çsetzt das Terminal auf den Raw-Modus(bei ?NIX-Systemen).
- üt_rawoffÇschaltetdenModuswiederaus,dasTerminalbefindet
- sichwiederimNormal-Modus.
-
-
- üBEMERKUNG
- Ç
- Wirdnurbei?NIX-Systemeneingesetzt.
-
-
- üDATEIEN
-
- Ç libterm.inc
- libterm.a
-
-
- üREFERENZ
- Ç
- t_init
- ë
-
- Ç
-
-
-
-
-
-
-
-
-
-
- ë
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibtermt_beep libterm
- Ç
-
- üNAMEÇ
-
- àt_beep - Signalton auf Standard-Ausgabe ausgebenÇ
-
- ü
- SYNTAX
- Ç
- #include <libterm.inc>
-
- VOID t_beep ()
-
-
- üBESCHREIBUNGÇ
-
- ü t_beep Çgibt den Signalton (bell, ^G) auf stdout aus.
-
- ü
- BEMERKUNGÇ
-
- keine
-
- ü
- DATEIEN
- Ç
- libterm.inc
- libterm.a
-
-
- üREFERENZÇ
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê
- ______________________________________________________________________
- êlibterm t_cls,t_cleol,t_cleoslibterm
- Ç
-
-
- üNAMEÇ
-
- àt_cls,t_cleol,t_cleos - Bildschirmbereiche löschen
- Ç
- ü
- SYNTAX
- Ç
- #include <libterm.inc>
-
- VOID t_cls ()
-
- VOIDt_cleol()
-
- VOIDt_cleos()
-
-
- üBESCHREIBUNGÇ
-
- ü t_clsÇ löscht den Bildschirm und positioniert den Cursor indie
- linke obere Ecke (0, 0). üt_cleolÇ löscht den Bildschirm vom Cursor
- bis zum Ende der Zeileüt_cleosÇbiszumEndederSeite.
-
-
-
- üBEMERKUNG
-
- Çkeine
-
-
- üDATEIENÇ
-
- libterm.inc
- libterm.a
-
-
- üREFERENZÇ
-
- t_goxy
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibtermt_curson,t_cursoff,t_cursstatlibterm
-
- Ç
-
- üNAMEÇ
- à
- t_curson,t_cursoff,
- t_cursstat - Bildschirm-Cursor an-undausschalten
-
- Ç
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- VOID t_curson ()
-
- VOIDt_cursoff()
-
- BOOLt_cursstat()
-
- ü
- BESCHREIBUNG
-
- Ç üt_cursonÇ schaltet den Bildschirm-Cursor anundüt_cursoffÇschaltet
- ihnwiederaus.Mitüt_cursstat()Çkannabgefragtwerden,obder
- Cursorgeradeausgeschaltetist,oderan.
-
-
- üRETURNWERTÇ
-
- üt_cursstat()ÇliefertTRUE,wennderCursorangeschaltetist,
- FALSEsonst.
-
-
- üBEMERKUNG
- Ç
- üt_cursstat()Ç kann natürlich nur richtig arbeiten, wenn jedes An-/
- Ausschalten des Cursors über die Funktionen üt_curson()Ç und
- üt_cursoff()Ç gesteuert wird.
-
-
-
- üDATEIENÇ
-
- libterm.inc
- libterm.a
-
-
- üREFERENZÇ
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibterm t_cblink, t_csteady libtermÇ
-
-
- ü
- NAMEÇ
-
- à t_cblink, t_csteady - Cursor-Blinken an- / ausschaltenÇ
-
-
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- VOID t_cblink()
-
- VOID t_csteady()
-
-
- üBESCHREIBUNGÇ
-
- ü t_cblinkÇ schaltet das Blinken des Cursor ein und üt_csteadyÇ schal-
- tetdas Blinken wieder aus.
-
-
- üBEMERKUNGÇ
-
- keine
-
-
- üDATEIENÇ
-
- libterm.inc
- libterm.a
-
-
- üREFERENZÇ
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibtermt_getc libterm
-
- ü
- Ç
- üNAMEÇ
- à
- t_getc - Tastencode oder Konstante fuer Sondertaste liefern
-
- Ç
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- WORD t_getc ()
-
- ü
- BESCHREIBUNG
- Ç
- ü t_getcÇ liefert den Ascii-Code einer betätigten Taste oder,falls
- es sich um eine Sonder-Taste handelt (Funktions-, Escape-, Cursor-
- Tasten), eine in libterm.inc definierte Konstante zurück.Das oder
- die Zeichen (Sonder-Tasten) der Tasten werden dabei nicht geechot.
-
-
- üRETURNWERTÇ
-
- Tastencode oder Konstante der Sonder-Taste.
-
-
- üBEMERKUNGÇ
-
- keine
-
-
- üDATEIENÇ
-
- libterm.inc
- libterm.a
- libstr.a (strfnd)
-
-
- üREFERENZÇ
-
- t_init
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibtermt_goxy,t_chome,t_cup,t_cdown,t_cright,t_cleft libterm
-
- Ç
-
- üNAMEÇ
- à
- t_goxy,t_chome,t_cup,
- t_cdown,t_cright,t_cleft - Bildschirm-Cursor positionieren
-
- ü
- SYNTAX
- Ç
- #include <libterm.inc>
-
- VOID t_goxy (x, y)
- WORD x, y;
-
- VOIDt_chome()
-
- VOIDt_cup()
-
- VOIDt_cdown()
-
- VOIDt_cright()
-
- VOIDt_cleft()
-
- ü
- BESCHREIBUNG
- Ç
- üt_goxyÇ positioniert den Cursor auf die Koordinaten x und y. Der
- Nullpunkt ist hierbei die linke obere Bildschirmecke (0,0).
- üt_chomeÇpositioniertdenCursorindielinkeobereBildschirmecke
- ohnedenBildschirmzulöschen.üt_cupÇ,üt_cdownÇ,üt_crightÇundü
- t_cleftÇpositionierendenCursorrelativzuraktuellenPosition
- umeineZeilenachoben,bzw.umeineZeilenachunten,bzw.um
- eineSpaltenachrechts,bzw.umeineSpaltenachlinks.
-
- ü
- BEMERKUNG
- Ç
- keine
-
- ü
- DATEIEN
- Ç
- libterm.inc
- libterm.a
-
-
- üREFERENZÇ
-
- t_init,tgoto
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibtermt_setatt,t_invon,t_invofflibterm
- ü
-
- Ç
- üNAMEÇ
-
- à t_setatt,t_invon,t_invoff - Terminal-Attribute setzen
-
- Ç
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- WORD t_setatt (newatt)
- WORDnewatt;
-
- WORDt_invon()
-
- WORDt_invoff()
-
-
- üBESCHREIBUNGÇ
-
- ü t_setatt Çsetzt entsprechend dem Parameter newatt die Terminal-
- attribute DIM, INV, BLK, UND, ALT, GRA oder NRM. Dabei wird
- versucht, die Ausgabe zu optimieren, d. h. möglichst wenig bytes
- zu senden.üt_invonÇundüt_invoffÇschaltendenInvers-Modusan
- bzw.aus.
-
- Dabei haben die Modes folgende Bedeutung:
-
- NRM - Normal
- DIM - Halbe Helligkeit
- BLK - Blinkend
- UND - Unterstrichen
- INV - Inverse Darstellung
- GRA -
- ALT -
-
-
- üRETURNWERT
- Ç
- Zurückgeliefert werden die akt. Attribut-Flags als Word.
-
-
- üBEMERKUNGÇ
-
- üt_invonÇundüt_invoffÇsindalsMakrosdefiniertundaufüt_setattÇ
- abgebildet.
- ü
-
- DATEIEN
-
- Ç libterm.inc
- libterm.a
-
-
-
-
-
-
-
- ê
- ______________________________________________________________________Ç
- êlibtermt_settwlibterm
- ü
-
- Ç
- üNAMEÇ
-
- à t_settw-Tabulatorweitesetzen
-
- Ç
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- VOID t_settw (width)
- WORDwidth;
-
-
- üBESCHREIBUNGÇ
-
- ü t_settw Çsetzt dieinterneTabulatorweite(t_tw)aufdenWert
- width.
-
-
- üBEMERKUNGÇ
-
- üt_settwÇistalsMakroinlibterm.incdefiniert.
- ü
-
- DATEIEN
-
- Ç libterm.inc
- libterm.a
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê
- ______________________________________________________________________
- êlibterm t_hline, t_vline, t_box libterm
- Ç
-
-
- üNAMEÇ
-
- àt_hline, t_vline, t_box - Linien und Boxen zeichnenÇ
-
-
- üSYNTAXÇ
-
- #include <libterm.inc>
-
- VOID t_hline (col, row, width, mode, clear, chr)
- WORD col, row, width, mode;
- BOOL clear;
- BYTE chr;
-
- VOID t_vline (col, row, height, mode, clear, chr)
- WORD col, row, height, mode;
- BOOL clear;
- BYTE chr;
-
- VOID t_box (col, row, width, height, mode, clear, chr)
- WORD col, row, width, height, mode;
- BOOL clear;
- BYTE chr;
-
-
- üBESCHREIBUNGÇ
-
- üt_hlineÇ gibt eine horizontale Linie auf dem Bildschirm aus. Dabei
- beginnt die Linie ab col, row mit der Länge width. Abhängig von
- mode wird die Linie mit unterschiedlichen (Grafik-)Zeichen be-
- schrieben. mode kann einen der untenstehenden Werte annehmen:
-
- 0 : Leer, keine Grafik, nur Leerzeichen
- 1 : --- Grafik
- 2 : +-+ Grafik
- 3 : Grafik mit Zeichen chr
- 4 : Halbgrafik (linea fuer GEMDOS)
-
- Wenn clear = TRUE ist, dann wird bei mode 4 und GEMDOS der Bereich
- zuerst durch Leerzeichen überschrieben.
- Mitü t_vlineÇ wird eine vertikale Linie mit der Höhe height beschrie-
- ben. üt_box Çbeschreibt eine Box mit der Breite width und der Höhe
- height.
-
-
- üBEMERKUNGÇ
-
- Unter GEMDOS wird bei mode 4 versucht die Grafik durch LineA-
- Linien zu ersetzen.
-
-
- üDATEIENÇ
-
- libterm.inc
- libterm.a
-
- ü
- REFERENZÇ
-
- ê______________________________________________________________________Ç
- 8000100001\MENU1.IMG
- Ç
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\MENU2.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\MENU3.IMG
-
-
-
-
-
-
-
-
-
-
-
- ê
- êlibmenupmexec libmenu
- Ç
-
- ü
- NAME
- à
- pmexec - Popup-Menu aufbauen und ausführen
- Ç
-
- üSYNTAXÇ
-
- #include <popmenu.inc>
-
- BYTE *pmexec (menup, col,row, first, retkeyp, submenu)
- PM *menup;
- WORD col;
- WORD row;
- BYTE *first;
- WORD *retkeyp;
- BOOL submenu;
-
- ü
- BESCHREIBUNG
- Ç
- ü pmexecÇ ist die Hauptfunktion des üpopup-MenüsÇ. Sie steuert den
- gesammten Menü-Ablaub durch Aufruf mehrerer Unterfunktionen.
- Ein Menü ist eine Menge von einzelnen Menüpunkten, die durch
- die Cursortasten angesprungen und durch die RETURN-Taste
- selektiert werden können. Die Menüpunkte werden untereinander
- dargestellt. Sind mehr Menüeinträge vorhanden, als Platz angege-
- ben ist (pm_height), so wird das Menü in einzelne Seiten aufge-
- teilt. Um die Menüeinträge wird ein Rahmen gezogen, in der ober-
- sten Zeile wird der Menütitel, falls vorhanden, zentriert ange-
- zeigt.
-
- Die übergebenen Parameter im einzelnen.
- menup ist dabei ein Zeiger auf eine Menü-Struktur der Form:
-
- typedef struct
- {
- BYTE *pm_title; /* Titel des Menüs */
- WORD pm_width; /* Breite des Menüs zwischen beiden Seiten */
- WORD pm_height; /* Höhe des Menüs zwischen beiden Linien */
- WORD pm_size; /* Anzahl der Menü-Einträge */
- PME *pm_entries; /* Feld der einzelnen Einträgen */
- } PM;
-
- Die einzelnen Menü-Einträge haben dabei folgenden Aufbau:
-
- typedef struct
- {
- BYTE *pme_text; /* Anzeigetext des Menü-Eintrages */
- WORD pme_type; /* Typ des Menü-Eintrages */
- BYTE *pme_ret; /* Returnwert oder Funktion oder Untermenü */
- BYTE *pme_param; /* Parameter, wenn pme_ret Funktion oder */
- } PME; /* Untermenü ist. */
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibmenupmexec libmenu
- Ç
-
-
- pme_type kann dabei folgende Werte annehmen:
-
- üPMVALUEÇ: in pme_ret ist ein String vorhanden, der bei Aktivie-
- rung des Eintrages zurückgeliefert wird.
- üPMPROCÇ: bei Selektion des Menüeintrages wird eine Prozedur
- aufgerufen, das Menü jedoch nicht verlassen.
- üPMFUNCÇ: in pme_ret ist die Adresse einer Funktion vom Typ
- BYTE * vorhanden. Bei Selektion des Menüeintrages
- wird die Funktion ausgeführt und ihr Wert zurückge-
- liefert. Der Funktion werden dabei pme_param,
- ein Pointer auf die Menüstruktur und ein Pointer
- auf den aktivierten Menüeintrag übergeben.
- üPMMENUÇ: pme_ret enthält die Adresse einer Menüstruktur.
- Bei Auswahl dieses Eintrages wird ein Untermenü
- aufgebaut und beim Beenden dieses Menüs, der Wert
- zurückgeliefert (Rekursion). Dem Untermenü wird
- pme_param als first übergeben.
-
- Zusätzlich muß pme_type entweder mit üPMSELECTÇ oder üPMDESELÇ ver-
- odert werden.
- Bei PMSELECT darf der betroffene Menüeintrag selektiert werden,
- bei PMDESEL wird er zwar angezeigt, kann jedoch nicht durch
- RETURN aktiviert werden.
-
- row und col sind die Zeilen- und Spaltenposition der linken oberen
- Ecke der Umrahmung. Wenn first ungleich NULP ist, dann wird in den
- Menü-Einträgen nach dem Text gesucht, der mit dem Text von first
- beginnt. Auf diesen Eintrag wird dann der Cursor zuerst positio-
- niert. first braucht dabei nicht den gesammten Text des gewünschten
- Eintrages enthalten, die ersten Buchstaben genügen (Signifikanz
- beachten!); Groß-/Kleinschrift wird bei dem Suchen nicht berück-
- sichtigt (strnicmp).
- In retkeyp ist der Code der Taste enthalten, die das Beenden des
- Menüs hervorrief.
- Mit submenu = FALSE wird der Funktion pmexec mitgeteilt, daß es
- sich bei dem übergebenen Menue um das Hauptmenue handelt, die
- Taste CursorLeft demnach nicht zum Beenden des Menüs benutzt
- werden kann.
-
- ü Die Tasten zum Bedienen des MenüsÇ:
-
- Mit der Cursortaste DOWN (bzw. UP) kann von einem Menueintrag zum
- nächsten (vorherigen) Menüeintrag positioniert werden.
- Die Cursortaste LEFT kann nur bedient werden, wenn der aktuelle
- Menüeintrag vom Typ PMMENU ist, also ein Untermenü enthält.
- Die Cursortaste RIGHT wird nur akzeptiert, wenn es sich bei dem
- aktuellen Menü um ein Untermenü handelt.
- Die RETURN und die ENTER Tasten selektieren den aktuellen Eintrag.
- Dabei wirdü pmexec Çmit dem Wert von pme_ret oder dem Wert der
- Funktion in pme_ret oder dem Wert des Untermenüs in pme_ret ver-
- lassen. Ist der Menüeintrag vom Typ PMPROC, so wird zwar die
- Prozedur in pme_ret ausgeführt,ü pmexecÇ jedoch nicht verlassen.
- Cursor HOME positioniert den Cursor auf den ersten Eintrag.
- Die Leertaste versucht zuerst ein Untermenü aufzurufen (Cursor
- RIGHT) oder bei Mißerfolg den nächsten Eintrag anzuspringen
- (Cursor DOWN).
-
-
-
- ê______________________________________________________________________
- êlibmenupmexec libmenu
- Ç
-
-
- Die Backspace Taste versucht zuerst zum höher liegenden Menü zu
- springen oder, falls nicht vorhanden (akt. Menü ist Hauptmenü)
- den vorherigen Menüeintrag anzuspringen.
- Wird die ESCAPE Taste 2 mal betätigt, so wird pmexec abgebrochen
- und NULP zurückgeliefert.
- Füralle anderen Eingaben (soweit zwischen ASCII 'A' und 'z')
- wirdversucht, einen Eintrag zufinden, dessen Text mit dem ent-
- sprechenden Buchstaben anfängt.Der Cursor wird dann auf diesen
- Eintrag positioniert.
-
-
- üBEMERKUNGÇ
-
- VordemAufrufvonüpmexecÇmußdasTerminalmitüt_initÇinitiali-
- siertwerden.
-
-
- üRETURNWERTÇ
-
- Wert von pme_ret (pme_type = PMVALUE), oder Wert der Funktion in
- pme_ret (pme_type = PMFUNC), oder Wert des Untermenüs in pme_ret
- (pme_type = PMMENU) oder NULP bei Abbruch durch ESCAPE (retkeyp =
- 27) bzw. bei Auftreten eines Fehlers (retkeyp = -1).
-
-
- üDATEIENÇ
-
- popmenu.inc
- stdio.h
- libmenu.a
- libstr.a
- libterm.a
- termcap
-
-
- üREFERENZÇ
-
- pmselect,t_init,t_exit,t_getc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibmenupmexec libmenu
- Ç
-
-
- üBEISPIELÇ
-
- #include <stdio.h>
- #include <popmenu.inc>
-
- BYTE *functel();
- BYTE *selectall();
-
- extern PM testmenu;
-
- PME vorn_ent[] =
- {
- { "Alois", (PMVALUE | PMSELECT), "Alois", NULP },
- { "Sandro", (PMVALUE | PMSELECT), "Sandro", NULP },
- { "Werner", (PMMENU | PMSELECT), (BYTE *) &testmenu, NULP },
- { "Meier", (PMVALUE | PMSELECT), "Meier", NULP }
- };
- PM vornmenu =
- {
- "Vornamen", 10, 6, PMTABSIZE (vorn_ent), vorn_ent
- };
-
- PME test_ent[] =
- {
- { "Name", PMVALUE | PMSELECT, "Name select", NULP },
- { "Gebname", PMVALUE | PMSELECT, "Gebname", NULP },
- { "Vorname", PMMENU | PMSELECT, (BYTE *) &vornmenu, "san" },
- { "Alter", PMMENU | PMSELECT, (BYTE *) &vornmenu, NULP },
- { "Strasse", PMVALUE | PMSELECT, "Strasse", NULP },
- { "Bezirk", PMVALUE | PMSELECT, "Bezirk", NULP },
- { "Beruf", PMVALUE | PMSELECT, "Beruf", NULP },
- { "Select", PMPROC | PMSELECT, selectall, "" }
- };
-
- PM testmenu =
- {
- "Testmenu", 12, 7, PMTABSIZE (test_ent), test_ent
- };
-
- BYTE *selectall (dummy, menup)
- BYTE *dummy;
- PM *menup;
- {
- pmselect (menup, "", TRUE);
- return ("Alle Eintraege selektiert!");
- }
-
- main ()
- {
- BYTE *ret;
- WORD retkey;
-
- t_init();
- ret = pmexec (&testmenu, 5, 7, "Beruf", &retkey, !ISSUBMENU);
- printf ("'%s'\n", (retkey == 27 ? "Abbruch" : ret));
- t_getc();
- t_exit();
- }
-
- ê______________________________________________________________________
- êlibmenupmselect,PMSelect,PMDesel libmenu
- Ç
-
-
- üNAMEÇ
- à
- pmselect,PMSelect,
- PMDesel - Popup-Menü-Einträge selektieren / deselektieren
- Ç
-
- üSYNTAXÇ
-
- #include <popmenu.inc>
-
- WORD pmselect (menup, text, select)
- PM *menup;
- BYTE *text;
- BOOL select;
-
- WORD PMSelect (menup, text)
- PM *menup;
- BYTE *text;
-
- WORD PMDesel (menup, text)
- PM *menup;
- BYTE *text;
-
- ü
- BESCHREIBUNG
- Ç
- ü pmselectÇ selektiert oder deselektiert Menueinträge. Deselektierte
- Menueinträge werden zwar angezeigt, könnten jedoch nicht mehr über
- RETURN (z. B.) ausgewählt werden. Bei select = TRUE werden alle
- Einträge selektiert, deren Anzeigetext mit text gematched werden
- können (text = "" -> alle selektieren).Für select = FALSE werden
- die entsprechenden Einträge deselektiert.
- ü PMSelectÇ und üPMDeselÇ sind als Makros in popmenu.inc definiert und
- haben bis auf den letzten Parameter die gleiche Syntax.
-
-
- üRETURNWERTÇ
-
- Anzahl der betroffenen Einträge, wobei bereits selektierte (bzw.
- deselekt.) nicht nochmal selektiert (bzw. deselekt.) werden.
-
- ü
- BEMERKUNGÇ
-
- keine
-
- ü
- DATEIEN
- Ç
- popmenu.inc, libmenu.a, libstr.a,libterm.a,termcap
-
-
- üREFERENZ
- Ç
- pmexec
- ê
-
-
-
- ______________________________________________________________________
- 8000100001\DATA1.IMG
- ê
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\DATA2.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\DATA3.IMG
-
-
-
-
-
-
-
-
-
-
-
-
- êlibdata stack libdata
- Ç
-
- ü
- NAME
- à
- stack - Funktionen zum Manipulieren der Datenstruktur stack
- Ç
- ü
- BESCHREIBUNG
- Ç
- Mithilfe der Stack-Funktionen können Stack-Datenstrukturen aufge-
- baut und verändert werden.
- Ein Stack muß immer erst durch üstacknewÇ alloziert werden. Der
- Pointer, der von stacknew geliefert wird, muß den anderen Stack-
- funktionen als Parameter übergeben werden. Der Pointer zeigt auf
- eine Stack-Typstruktur mit folgendem Aufbau:
-
- struct _stk
- {
- BYTE *stk_name; /* Name des Stacks */
- STE *stk_top; /* Zeiger auf oberstes Stack-Element */
- WORD stk_flag; /* Attribut-Flag des Stacks */
- WORD stk_mdepth; /* max. Tiefe des Stacks */
- WORD stk_cdepth; /* akt. Tiefe des Stacks */
- };
- typedef struct _stk STK;
-
- Durch die Operationenü stackpushÇ undü stackpopÇ können Elemente auf
- den Stack gepackt bzw. vom Stack entfernt werden. Die Elemente
- können dabei unterscheidlichen Typs sein; der Typ des zu pushenden
- Elements wird der Operation üstackpushÇ übergeben und vom Stack
- selbst verwaltet. Der Operation üstackpopÇ muß dann ein Zeiger auf
- eine dem Typ entsprechende Speichervariable übergeben werden.
- Mitü stacktypeÇ kann der Typ des Top-Elementes erfragt werden. Dabei
- kann der Typ einen der unterstehenden Werte annehmen:
- ü
- STKBYTE char
- STKBOOL short int
- STKWORD short int
- STKUWORD unsigned short int
- STKLONG long int
- STKULONG unsigned long int
- STKFLOAT float
- STKDOUBLE long float
- STKSTRING char *
- STKPOINTER char * oder int * oder ...
- Ç
- Wird beiü stacknewÇ die Größe des Stacks mit > 0 angegeben, so wird
- damit die maximale Tiefe des Stack festgelegt, wird als Größe 0
- übergeben, so kann der Stack beliebig wachsen (nur durch Speicher-
- platz begrenzt).
- Zum Freigeben des vom Stack allozierten Speicherbereiches wird
- ü stackdelÇ aufgerufen.
-
- ü
- DATEIEN
- Ç
- stack.inc
- libdata.a
-
-
- ê
- ______________________________________________________________________
- êlibdata stacknew, StackNew libdataÇ
-
-
- ü
- NAMEÇ
-
- à stacknew, StackNew - Stackstruktur erzeugenÇ
-
- ü
- SYNTAXÇ
-
- #include <stack.inc>
-
- STK *stacknew (name, flag, depth)
- BYTE *name;
- WORD flag;
- WORD depth;
-
- STK *StackNew ()
-
- ü
- BESCHREIBUNGÇ
-
- Mitü stacknewÇ wird der Speicherplatz für eine neue Stackstruktur
- alloziert. Der Pointer, der vonü stacknewÇ bzw. vonü StackNewÇ gelie-
- fert wird, ist den anderen Stack-Funktionen als Parameter (handle)
- zu übergeben. name ist eine Zeichenkette, die beiü stackshowÇ als
- Titel angezeigt, ansonsten jedoch nicht ausgewertet wird (kann
- auch leer "" sein). Für flag kann entwederü STKNORMALÇ oder
- ü STKVARDEPTHÇ angegeben werden. Bei Übergabe vonü STKVARDEPTHÇ als
- flag wird die Tiefe des Stacks nicht bzw. nur durch den Speicher-
- platz begrenzt. depth ist die Maximal-Tiefe des Stacks, falls
- als flag üSTKNORMALÇ angegeben wird.ü StackNewÇ arbeitet wie üstacknewÇ,
- verlangt jedoch keine Parameter und erzeugt eine Stack-Struktur
- ohne Namen (name = "") und mit variabler Tiefe (üSTKVARDEPTHÇ).
-
- ü
- RETURNWERTÇ
-
- Pointer auf die neue Stack-Struktur.
-
-
- üBEMERKUNGÇ
-
- ü StackNewÇ ist als Macro in stack.inc definiert und wird auf
- üstacknewÇ abgebildet.
-
-
- üBEISPIELÇ
-
- ...
-
- STK *stackp;
-
- if ((stackp = stacknew ("Titel", STKVARDEPTH, 0)) == STKNULP)
- {
- fprintf (stderr, "Fehler beim Neuanlegen eines Stacks\n");
- exit (-1);
- }
-
- ...
-
-
- ê______________________________________________________________________
- êlibdata stacknew, StackNew libdataÇ
-
-
- ü
- DATEIENÇ
-
- stack.inc
- libdata.a
-
- ü
- REFERENZÇ
-
- stackdel
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibdata stackdel libdataÇ
-
-
-
- üNAMEÇ
-
- à stackdel - Stackstruktur entfernenÇ
-
-
- üSYNTAXÇ
-
- #include <stack.inc>
-
- VOID stackdel (stackp)
- STK *stackp;
-
-
- üBESCHREIBUNG
-
- stackdelÇ entfernt alle Stackelemente und die Struktur selbst.
-
-
- üBEMERKUNGÇ
-
- keine
-
-
- üBEISPIELÇ
-
- ...
-
- extern STK *stackp;
-
- if (stackempty (stackp))
- stackdel (stackp);
-
- ...
-
-
- üDATEIENÇ
-
- stack.inc
- libdata.a
-
-
- üREFERENZÇ
-
- stackempty, stackpop
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibdata stackpush, PushBYTE, PushWORD, PushBOOL, PushLONG libdataÇ
-
-
-
- üNAMEÇ
- à
- stackpush, PushBYTE, PushWORD, PushBOOL, PushUWORD,
- PushLONG, PushULONG, PushFLOAT, PushDOUBLE, PushSTRING,
- PushPOINTER - Element auf Stack pushen (legen)Ç
-
-
- üSYNTAXÇ
-
- #include <stack.inc>
-
- BOOL stackpush (stp, type, buf)
- STK *stp;
- WORD type;
- VARTYPE buf;
-
- BOOL PushBYTE (stp, chr)
- STK *stp;
- BYTE chr;
-
- BOOL PushWORD (stp, wrd)
- STK *stp;
- WORD wrd;
-
- BOOL PushUWORD (stp, uwrd)
- STK *stp;
- UWORD uwrd;
-
- BOOL PushBOOL (stp, bool)
- STK *stp;
- BOOL bool;
-
- BOOL PushLONG (stp, lng)
- STK *stp;
- LONG lng;
-
- BOOL PushULONG (stp, ulng)
- STK *stp;
- ULONG ulng;
-
- BOOL PushFLOAT (stp, flt)
- STK *stp;
- FLOAT flt;
-
- BOOL PushDOUBLE (stp, dbl)
- STK *stp;
- DOUBLE dbl;
-
- BOOL PushSTRING (stp, str)
- STK *stp;
- BYTE *str;
-
- BOOL PushPOINTER (stp, ptr)
- STK *stp;
- BYTE *ptr; (WORD *ptr; ...)
-
-
-
-
- ê______________________________________________________________________
- êlibdata stackpush, PushBYTE, PushWORD, PushBOOL, PushLONG libdataÇ
-
-
-
- üBESCHREIBUNGÇ
-
- Mitü stackpushÇ können Elemente (Konstanten und Variablen) belie-
- bigen Typs auf den Stack stackp gepusht (gelegt) werden. Mit type
- wird üstackpushÇ der Typ des zu pushenden Elementes mitgeteilt
- (üSTKBYTE, STKBOOL, STKWORDÇ, ...).ü PushBYTEÇ, üPushWORDÇ, ... haben
- die gleiche Funktionalität wie üstackpushÇ, benötigen jedoch nicht
- den Typ des Elementes, da implizit im Aufruf enthalten.
-
-
- üBEMERKUNGÇ
-
- üPushBYTEÇ, üPushWORDÇ, ... sind als Macros in stack.inc definiert
- und werden aufü stackpushÇ abgebildet.
-
-
- üBEISPIELÇ
-
- ...
-
- extern STK *stackp;
- WORD wrd = 120;
- BYTE str[80];
-
- if (stackpush (stackp, STKBYTE, 'b') != TRUE)
- fprintf (stderr, "Fehler beim Pushen von 'b'\n");
- if (PushWORD (stackp, wrd) != TRUE)
- fprintf (stderr, "Fehler beim Pushen von '%d'\n", wrd);
- scanf ("%s", str);
- if (PushSTRING (stp, str) != TRUE)
- fprintf (stderr, "Fehler beim Pushen von '%s'\n", str);
-
- ...
-
-
- üDATEIENÇ
-
- stack.inc
- libdata.a
-
-
- üREFERENZÇ
-
- stackpop, stacktop
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê
- ______________________________________________________________________
- êlibdata stackpop, stacktop libdataÇ
-
-
-
- üNAMEÇ
- à
- stackpop, stacktop - Wert des obersten Stackelements holenÇ
-
- ü
- SYNTAXÇ
-
- #include <stack.inc>
-
- BOOL stackpop (stp, buf)
- STK *stp;
- BYTE *buf; (bzw. WORD *buf; bzw. LONG *buf; ...)
-
- BOOL stacktop (stp, buf)
- STK *stp;
- BYTE *buf; (bzw. WORD *buf; bzw. LONG *buf; ...)
-
- ü
- BESCHREIBUNGÇ
-
- ü stackpop Çliefert den Wert des obersten Stackelementes im Puffer
- buf. Dabei wird eine implizite Typumwandlung entsprechend dem
- Typ des Elements vorgenommen. Nach dem Füllen des Puffers wird
- das Element vom Stack entfernt (gepopt).ü stacktopÇ liefert eben-
- falls das oberste Element im Puffer buf, entfernt es jedoch nicht
- vom Stack.
-
- ü
- RETURNWERTÇ
-
- ü stackpopÇ undü stacktopÇ liefern TRUE, wenn der Stack nicht leer ist,
- FALSE sonst.
-
-
- üBEMERKUNGÇ
-
- keine
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibdata stackpop, stacktop libdataÇ
-
-
-
- üBEISPIELÇ
-
- ...
-
- VOID test (stackp)
- STK *stackp;
- {
- WORD wrd;
- LONG lng;
- BYTE chr;
- BOOL ret;
-
- ...
-
- if (!stackempty (stackp))
- if (stacktype (stackp) == STKWORD)
- stackpop (stackp, &wrd);
- switch (stacktype (stackp))
- {
- case STKBYTE:
- ret = stackpop (stackp, &chr);
- break;
- case STKLONG:
- ret = stackpop (stackp, &lng);
- break;
- case STKEMPTY:
- printf ("Fehler: Stack ist leer\n");
- break;
- }
- if (!ret)
- printf ("Fehler beim Popen, Stack ist leer\n");
- else
- ...
- }
-
- ...
-
-
- üDATEIENÇ
-
- stack.inc
- libdata.a
-
-
- üREFERENZÇ
-
- stacknew, stackpush
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibdata stackshow libdataÇ
-
-
-
- üNAMEÇ
-
- à stackshow - Attribute und Inhalte des Stacks anzeigenÇ
-
-
- üSYNTAXÇ
-
- #include <stack.inc>
-
- VOID stackshow (stp)
- STK *stp;
-
-
- üBESCHREIBUNGÇ
-
- üstackshowÇ gibt die Attribute, also den Namen, das Attribut-Flag
- und die Tiefe des Stacks, sowie die einzelnen Elemente des Stacks
- auf dem Bildschirm aus. Dabei werden die Elemente durch '>' und
- '<' eingefaßt. Die Elemente werden entsprechend ihrem Typ in eine
- lesbare Form gebracht. Das Top-Element wird als erstes angezeigt.
-
-
- üBEMERKUNGÇ
-
- keine
-
-
- üBEISPIELÇ
-
- ...
-
- extern STK *stackp;
-
- stackshow (stackp);
-
- ...
-
-
- üDATEIENÇ
-
- stack.inc
- libdata.a
-
-
- üREFERENZÇ
-
- stacknew, stacktop
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibdata stackempty libdataÇ
-
-
-
- üNAMEÇ
-
- àstackempty - Prüfen, ob Stack leer istÇ
-
-
- üSYNTAXÇ
-
- #include <stack.inc>
-
- BOOL stackempty (stackp)
- STK *stackp;
-
-
- üBESCHREIBUNGÇ
-
- üstackemptyÇ prüft, ob der Stack mit der Adresse stackp leer ist,
- also keine Elemente enthält.
-
-
- üRETURNWERTÇ
-
- ü stackemptyÇ liefert TRUE, wenn Stack stackp leer ist, FALSE sonst.
-
-
- üBEMERKUNGÇ
-
- üstackemptyÇ ist als Macro in stack.inc definiert.
-
-
- üBEISPIELÇ
-
- ...
-
- VOID test (stackp)
- STK *stackp;
- {
- ...
-
- if (stackempty (stackp))
- printf ("Stack ist leer\n");
- else
- ...
- }
-
- ...
-
-
- üDATEIENÇ
-
- stack.inc
- libdata.a
-
-
- üREFERENZÇ
-
- stacktop, stackdepth
-
-
-
- ê______________________________________________________________________
- êlibdata stackdepth libdataÇ
-
-
-
- üNAMEÇ
-
- àstackdepth - Anzahl der Stackelemente liefernÇ
-
-
- üSYNTAXÇ
-
- #include <stack.inc>
-
- WORD stackdepth (stackp)
- STK *stackp;
-
-
- üBESCHREIBUNG
-
- stackdepthÇ liefert die Anzahl der Stackelemente (Tiefe des Stack).
-
-
- üRETURNWERTÇ
-
- Die Anzahl der Stackelemente als WORD.
-
-
- üBEMERKUNGÇ
-
- üstackdepthÇ ist als Macro in stack.inc definiert.
-
-
- üBEISPIELÇ
-
- ...
-
- extern STK *stackp;
-
- printf ("Höhe des Stacks: %d\n", stackdepth (stackp));
-
- ...
-
-
- üDATEIENÇ
-
- stack.inc
- libdata.a
-
-
- üREFERENZÇ
-
- stackempty
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibdata stacktype libdataÇ
-
-
-
- üNAMEÇ
-
- à stacktype - Typ des obersten Stackelements liefernÇ
-
-
- üSYNTAXÇ
-
- #include <stack.inc>
-
- WORD stacktype (stackp)
- STK *stackp;
-
-
- üBESCHREIBUNG
-
- stacktypeÇ testet, ob der Stack nicht leer ist und liefert dann
- den Typ des Top-Elements von stackp.
-
-
- üRETURNWERTÇ
-
- ü stacktypeÇ liefert üSTKBYTE, STKBOOLÇ, ... wenn der Stack nicht leer
- ist, sonstü STKEMPTYÇ.
-
-
- üBEMERKUNG
-
- stacktypeÇ ist als Macro in stack.inc definiert.
-
-
- üBEISPIELÇ
-
- ...
-
- extern STK *stackp;
- BYTE chr;
-
- switch (stacktype (stackp))
- {
- case STKBYTE:
- stacktop (stackp, &chr);
- break;
- ...
- }
- ...
-
-
- üDATEIENÇ
-
- stack.inc
- libdata.a
-
-
- üREFERENZÇ
-
- stackempty
-
-
-
- ê______________________________________________________________________
- êlibdata stackname libdataÇ
-
-
-
- üNAMEÇ
-
- à stackname - Name des Stacks liefernÇ
-
-
- üSYNTAXÇ
-
- #include <stack.inc>
-
- BYTE *stackname (stackp)
- STK *stackp;
-
-
- üBESCHREIBUNGÇ
-
- üstacknameÇ liefert den Namen des Stacks, der bei üstacknewÇ mit über-
- geben wurde.
-
-
- üRETURNWERTÇ
-
- Der Name des Stacks wird zurückgeliefert.
-
-
- üBEMERKUNGÇ
-
- üstackname Çist als Macro in stack.inc definiert.
-
-
- üBEISPIELÇ
-
- ...
-
- extern STK *stackp;
-
- printf ("Name des Stacks: %s\n", stackname (stackp));
-
- ...
-
-
- üDATEIENÇ
-
- stack.inc
- libdata.a
-
-
- üREFERENZÇ
-
- stacknew
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibetc getarg, GetArg libetc
- Ç
-
-
- üNAMEÇ
-
- à getarg, GetArg - Programm-Argumente prüfen und Variablen zuordnen
-
- ü
- SYNTAX
- Ç
- #include <getarg.inc>
-
- BOOL getarg (argc, argv, argtab, tabsize, flag, usage, exitval)
- WORD *argc;
- BYTE **argv;
- ARG *argtab;
- WORD tabsize;
- WORD flag;
- BYTE *usage;
- WORD exitval;
-
- BOOL GetArg (argc, argv, argtab)
- WORD *argc;
- BYTE **argv;
- ARG *argtab;
-
-
- üBESCHREIBUNGÇ
-
- ügetargÇ bearbeitet den Programm-Argumentvektor argv und untersucht
- ihn in Hinsicht auf vorhandene Options-Argumente. Options-Argumen-
- te werden durch ein '-' eingeleitet, gefolgt von einem Buchstaben.
- Diesem Buchstaben folgt der Wert des Options-Arguments (nicht
- durch Blank getrennt!). Der Wert eines Options-Arguments wird
- einer vorher vereinbarten Variablen zugeordnet. Beispiel:
-
- progname -l72 -b -otest
-
- oder auch
-
- progname -l72botest .
-
- In der Struktur argtab sind die gültigen (möglichen) Optionen und
- die Adressen ihrer zugeordneten Variablen verzeichnet. Die Struk-
- tur argtab unterliegt folgender Definition (s. a. getarg.inc):
- ü
- typedef struct
- {
- BYTE arg_arg; /* Options-Argument-Zeichen */
- BYTE arg_type; /* Typ des Options-Arguments */
- WORD *arg_varaddr; /* Adresse der Variablen */
- BYTE *arg_errmsg; /* Fehlermeldungstext */
- }
- ARG;
- Ç
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibetc getarg, GetArg libetc
- Ç
-
-
- In arg_arg muß der Buchstabe des Options-Arguments stehen. In
- arg_type ist der Type des Options-Arguments beschrieben. Folgende
- Typen werden erkannt:
- ü
- IARG = Integer (WORD)
- BARG = Boolescher (BOOL)
- CARG = Character (BYTE)
- SARG = String (BYTE *)
- PARG = Funktion (*WORD) ()
- NARG = Filename (BYTE *)
- LARG = Long Integer (LONG)
- DARG = Double (DOUBLE)
-
- Ç Die Variable, deren Adresse in arg_varaddr vorliegt, muß vom Typ
- des Options-Arguments sein. Eine Besonderheit ist bei einem
- Options-Argument vom Typ PARG zu beachten. Wird eine Option mit
- diesem Typ zur runtime dem Programm übergeben, so wird die Funk-
- tion, deren Adresse in arg_varaddr steht, aufgerufen. Zusätzlich
- wird dieser Funktion der rest der Zeichenkette, die durch das
- Argument eingeleitet wurde, als Parameter mit übergeben.
- Die Zeichenkette arg_errmsg kann einen Fehlertext enthalten, der
- bei der Anzeige der Liste aller möglichen Options-Argumente (s.u.)
- mit ausgegeben wird.
- Korrekt erkannte Options-Argumente werden aus dem Argument-Vektor
- argv entfernt und argc entsprechend um die Anzahl entfernter
- Argumente vermindert. tabsize enthält die Anzahl möglicher
- Options-Argumente = Anzahl Einträge in argtab. Mit flag kann Ein-
- fluß auf die Sensibilität von ügetargÇ bei der Interpretation der
- Options-Argumente genommen werden. Dabei kann flag eine Veroderung
- aus der Menge der untenstehenen Flags sein:
- ü
- GAEXIT = Flag für Programmabbruch, wenn falsche Option
- GABREAK = Flag für Prozedurabbruch, wenn falsche Option
- GAUSAGE = Flag für Anzeige des usage, wenn falsche Option
- GANOCASE = Flag für Vernachlässigung von Groß-/Kleinschrift
- Ç
- Mit usage wird ein Text (String) übergeben, der angezeigt wird,
- falls eine falsche Option erkannt wurde (nur bei gesetztem Flag
- GAUSAGE).
- Mit exitval kann Einfluß auf den exit-Status des Programmes ge-
- nommen werden, wenn eine falsche Option erkannt wurde und das
- flag GAEXIT in flag gesetzt ist.
- ü GetArgÇ hat die gleiche Funktionalität wieü getargÇ, jedoch werden
- die letzten Parameter durch Default-Werte ersetzt (getarg.inc).
-
-
- üRETURNWERTÇ
-
- ü getargÇ undüGetArgÇliefern TRUE, wenn alle Option-Argumente korrekt
- erkannt worden sind, FALSE sonst (bei nicht gesetztem GAEXIT).
-
- ü
- BEMERKUNG
- Ç
- ü GetArgÇ ist als Macro in getarg.inc definiert und wird aufü getargÇ
- abgebildet. Da der String hinter der PARG-Option, der Funktion mit
- übergeben wird, muß ein folgendes Options-Argument erneut durch
- ein '-' eingeleitet werden.
-
- ê______________________________________________________________________
- êlibetc getarg, GetArg libetc
- Ç
-
- üBEISPIELÇ
-
- BOOL boolarg;
- BYTE chararg;
- WORD intarg;
- LONG longarg = 0L;
- DOUBLE doubarg = 0.0;
- BYTE strarg[100], filename[100];
- WORD testproc();
-
- ARG argtab[] =
- {
- { 'b', BARG, &boolarg, "boolean arg" },
- { 'c', CARG, (WORD *)&chararg, "character arg" },
- { 'i', IARG, &intarg, "integer arg" },
- { 'l', LARG, &longarg, "long int arg" },
- { 'd', DARG, &doubarg, "double arg" },
- { 's', SARG, (WORD *)strarg, "string arg" },
- { 'n', NARG, (WORD *)fname, "file arg" },
- { 'p', PARG, (WORD *)testproc, "proc arg" }
- };
-
- WORD testproc (str)
- BYTE *str;
- {
- printf ("Inside procedure called by -p command line switch, ");
- printf (" string = <%s>\n\n", str);
- return (1);
- }
-
- VOID main (argc, argv)
- WORD argc;
- BYTE *argv[];
- {
- WORD ret;
-
- ret = getarg (&argc, argv, argtab,TABSIZE (argtab),
- GAEXIT|GAUSAGE|GANOCASE, "usage", 2);
-
- printf ("boolarg: %d \n", boolarg);
- printf ("chararg: %c \n", chararg);
- printf ("intarg: %d \n", intarg);
- printf ("longarg: %ld \n", longarg);
- printf ("doubarg: %lf \n", doubarg);
- printf ("strarg: <%s> \n", strarg);
- printf ("fname: <%s> \n", fname);
- }
-
- ü
- DATEIEN
- Ç
- getarg.inc
- libstr.inc
- libetc.a
- libstr.a
-
- ü
- REFERENZ
- Ç
-
- ê______________________________________________________________________
- êlibetc system libetc
-
- Ç
-
- üNAMEÇ
-
- à system - Systemkommando ausführen Ç
-
-
- üSYNTAXÇ
-
- #include <libetc.inc>
-
- WORD system (com)
- BYTE *com;
-
-
- üBESCHREIBUNGÇ
-
- ü systemÇ führt das in com enthaltene Kommando aus. Dabei kann dem
- Kommando ein bzw. mehrere durch Leerzeichen getrennte Parameter
- folgen.
-
-
- üRETURNWERTÇ
-
- üsystemÇ liefert den Rückgabewert vonü PexecÇ() zurück (0bedeutet
- Kommandokonnteausgeführtwerden,negative Wertesind System-
- Fehler).
-
-
- üBEMERKUNGÇ
-
- keine
-
-
- üBEISPIELÇ
-
- #include <libetc.inc>
-
- main ()
- {
- WORD ret;
-
- ret = system ("test.prg param1 param2");
- if (ret < 0)
- printf ("System-Error %d\n", ret);
- }
-
-
- üDATEIENÇ
-
- libetc.inc
- libetc.a
- libstr.a
-
-
- üREFERENZÇ
-
- ê
- Ç
-
-
- ê______________________________________________________________________
- êlibetc editfld libetcÇ
-
-
-
- üNAMEÇ
-
- àeditfld - Zeichenkette bildschirmgesteuert editierenÇ
-
-
- üSYNTAXÇ
-
- #include <libetc.inc>
-
- BYTE *editfld (col, row, text, pattern, efunc, epar,def)
- WORD col, row;
- STR text, pattern;
- PFBOOL efunc;
- STR epar;
- STR def;
-
-
- üBESCHREIBUNGÇ
-
- Mit üeditfldÇ kann ein String editiert werden. Zum Editieren können
- die Cursortasten benutzt werden. Beendet wird die Eingabe mit
- RETURN, abgebrochen werden kann mit der ESCAPE-Taste. Das Feld
- wird an der Position col, row mit dem Titel text angezeigt. Direkt
- hinter text folgt das Eingabefeld (text kann leer sein). Die Zei-
- chen, die für die Eingabe zulässig sind, werdenü editfldÇ durch das
- Eingabemuster pattern mitgeteilt. Jedes Zeichen von pattern ent-
- spricht einem Zeichen des Feldes. Folgende Meta-Zeichen dienen dem
- Spezifizieren des entsprechenden Eingabezeichens:
-
-
- ü ? : beliebiges Zeichen
- # : beliebige Ziffer und '.' und '-' und '+'
- % : beliebige Ziffer
- @ : bel. Zeichen, Buchstaben jedoch nur klein
- $ : bel. Zeichen, Buchstaben jedoch nur gross
- & : beliebiger Buchstabe Ç
-
-
- Alle anderen Zeichen werden direkt in das Feld geschrieben und kön-
- nen nicht geändert werden, sondern werden beim Bewegen der Cursor-
- position übersprungen. Mit efunc kann die Adresse einer BOOL-
- Funktion übergeben werden (oder NULFB), die dann vor dem Verlassen
- von üeditfldÇ aufgerufen wird (das Eingabefeld und epar werden efunc
- übergeben). Die Funktion efunc kann dazu benutzt werden, die ein-
- gegebenen Zeichen auf Zulässigkeit zu untersuchen. Bei einem
- Return-Wert von TRUE wird editfld verlassen. Mit def kann eine
- Zeichenkette übergeben werden, mit der die frei editierbaren Zei-
- chen des Eingabefeldes vorbelegt werden können.
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êlibetc editfld libetcÇ
-
-
-
- Für das Editieren des Eingabefeldes haben folgende Tasten eine
- besondere Bedeutung:
- ü
- ESCAPE - Abbruch
- RETURN,
- LINEFEED - Ende des Editierens
- CURLEFT - Ein Zeichen nach links (falls nicht am Anfang des
- Feldes)
- CURRIGHT - Ein Zeichen nach rechts (falls nicht am Ende des
- Feldes)
- CURHOME - Zum Anfang des Feldes springen
- TAB - t_tw (Tabwidth) Zeichen weiter nach rechtsÇ
-
- Alle anderen Tasten werden als Eingabe-Zeichen interpretiert und
- auf Zulässigkeit untersucht.
-
-
- üRETURNWERTÇ
-
- Zeiger auf das Eingabefeld oder NULP, falls mit ESCAPE abgebrochen
- wurde oder ein Fehler bei den übergebenen Parametern festgestellt
- wurde.
-
-
- üBEMERKUNGÇ
-
- Das Eingabefeld wird in einem lokal statischen Puffer realisiert.
- Bei jedem Aufruf vonü editfld Çwird der Inhalt dieses Puffers mit
- den aktuellen Werten überschrieben.
- Für die Benutzung der Cursor-Tasten muß vorher das Terminal ini-
- tialisiert werden (üt_initÇ()).
-
-
- üBEISPIELÇ
-
- #include <libetc.inc>
- #include <libterm.inc>
- #include <libstr.inc>
-
- main ()
- {
- BYTE *ret,name[20];
- WORD month=1,row = 10, col = 20;
- BOOL chkmonth(), chkname();
-
- t_init();
- t_cblink();
- if ((ret = editfld (col, row, "Bitte Monat eingeben: ",
- "%%", chkmonth, "", " 1")))
- month = atoi (ret);
- else
- printf ("Abbruch oder Fehler\n");
- if ((ret = editfld (col, row+2, "Bitte Name eingeben: ",
- "$$$$$$$$$$", chkname, "", "")))
- strcpy (name, ret);
-
-
-
-
- ê______________________________________________________________________
- êlibetc editfld libetcÇ
-
-
- t_getc();
- t_exit();
- }
-
- BOOL chkmonth (mbuf)
- BYTE *mbuf;
- {
- return (atoi (mbuf) >= 1 && atoi (mbuf) <= 12 ? TRUE : FALSE);
- }
-
- BOOL chkname (nbuf)
- BYTE *nbuf;
- {
- return (stremp (nbuf) ? FALSE : TRUE);
- }
-
-
- üDATEIENÇ
-
- libetc.inc
- libetc.a
- libterm.a
- libstr.a
- termcap
-
-
- üREFERENZÇ
-
- t_init, t_settw
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- 8000100001\ANHANG1.IMG
- Ç
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\ANHANG2.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\ANHANG3.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- êAnhangtermcap Anhang
-
- Ç
-
- ae str (P) end alternate character set
- üal str (P*) add new blanc lineÇæ1)Ç
- am bool terminal has automatic margins
- as str (P) start alternate character set
- bc str backspace if not ^H
- bl str bell character
- übs bool terminal can backspace with ^HÇæ1)Ç
- BS str sent by backspace-key (if not bc)
- bt str (P) backtab
- bw bool backspace wraps from column 0 to last column
- c0..cF str sent by shifted func-keys (# 0x10 ... 0x1F)
- CC str command char in prototype if terminal setable
- ücd str (P*) clear to end of displayæ1)ü
- ce str (P) clear to end of lineÇæ1)Ç
- üCF str cursor offæ1)Ç
- ch str (P) like cm but horizontal motion only, line stays same
- CL str sent by char left-key
- ücl str (P*) clear screenÇæ1)Ç
- ücL str clear to end of lineÇæ1)Ç
- ücm str (P) cursor motionÇæ1)Ç
- CN str sent by cancel-key
- üco num number of columns in lineÇæ1)Ç
- üCO str cursor onæ1)Ç
- CR str sent by char right-key
- cr str (P*) carriage return, default ^M
- cs str (P) change scrolling region (vt100), like cm
- ücS str clear to end of screenÇæ1)Ç
- cv str (P) like ch but vertical only
- CW str sent by change window-key
- da bool display may be retained above
- db bool display may be retained below
- dB num number of millisecs of bs delay needed
- dC num number of millisecs of cr delay needed
- DC str sent by delete-char-key
- üdc str (P*) delete characterÇæ1)Ç
- dF num number of millisecs of ff delay needed
- DK str sent by down arrow-key, if not kd
- DL str sent by delete-key
- Dl str sent by destructive character delete-key
- üdl str (P*) delete lineÇæ1)Ç
- dm str delete mode enter
- dN num number of millisecs of nl delay needed
- üdo str down one lineÇæ1)Ç
- dT num number of millisecs of tab delay needed
- ed str end delete mode
- EE str end edit mode
- EG num number of chars taken by ES and EE
- üei str end insert mode; give `:ei=:` if icÇæ1)Ç
- EN str sent by end-key
- eo str can erase overstrikes with a blank
- ES str start edit mode
- ff str (P*) hardcopy terminal page eject (default ^L)
- FR str sent by field-recall-key
- fs str return from statusline
- FS str sent by field-store-key
- ê
- æ
- 1)wirdvonvt52unterstütztê
-
- ______________________________________________________________________
- êAnhangtermcap Anhang
-
- Ç
-
- G1 str upper-right corner graphic
- G2 str upper-left corner graphic
- G3 str lower-left corner graphic
- G4 str lower-right corner graphic
- GC str cross lines (intersection) graphic
- GD str down-tick graphic
- GE str end graphics mode
- GG num number of chars taken by GS and GE
- GH str horizontal bar graphic
- GL str left-tick graphic
- GR str right-tick graphic
- GS str start graphics mode
- GU str up-tick graphic
- GV str vertical bar graphic
- hc bool hardcopy terminal
- hd str halfline down (forward 1/2 linefeed)
- HM str sent by home-key, if not kh
- üho str cursor home, if no cmÇæ1)Ç
- üHP str sent by help-keyÇæ1)Ç
- hs bool has extra statusline
- hu str halfline up (reverse 1/2 linefeed)
- hz str hazeltine, can`t print ~s (tilde)
- üic str (P) insert characterÇæ1)Ç
- if str name of file containing is
- üim bool insert mode enter; give `:im=:q` if icÇæ1)Ç
- in bool insert mode distinguishes nulls on display
- ip str (P*) insert pad after character inserted
- üir str terminal resetæ1)ü
- is str terminal initialization stringÇæ1)Ç
- ük0..kF str sent by func-keys (# 0x00 ... 0x0F)Çæ1)Ç
- ka str sent by clear-all-tabs-key
- kA str sent by insert-line-key
- ükb str sent by backspace-keyÇæ1)Ç
- kC str sent by clear-screen- or erase-key
- kD str sent by delete-character-key
- ükd str sent by terminal down-arrow-keyÇæ1)Ç
- ke str out of keypad transmission mode
- kE str sent by clear-to-end-of-line-key
- KF str key-click off
- kF str sent by scroll-forward-down-key
- kH str sent by home-down-key
- ükh str sent by home-keyÇæ1)Ç
- ükI str sent by ins-char-/enter ins-mode-keyÇæ1)Ç
- kL str sent by delete-line-key
- ükl str sent by terminal left-arrow-keyÇæ1)Ç
- ükn num number of func-keysÇæ1)Ç
- ükN str sent by next-page-keyÇæ1)Ç
- KO str key-click on
- ko str termcap entries for other non-func-keys
- kP str sent by previous-page-key
- kR str sent by scroll-backward-up-key
- ükr str sent by terminal right-arrow-keyÇæ1)Ç
- ks str put terminal in keypad transmission mode
- kS str sent by clear-to-end-of-screen-key
- kt str sent by clear-tab-key
- kT str sent by set-tab-key
- ê
- æ
- 1)wirdvonvt52unterstütztê
- ______________________________________________________________________
- êAnhangtermcap Anhang
- Ç
-
-
- üku str sent by terminal up-arrow-keyÇæ1)Ç
- l0..lF str labels func-keys # 0x00 ... 0x0F
- LD str sent by line-delete-key
- üle str CursorleftÇæ1)Ç
- LF str sent by linefeed-key
- üli str number of lines on screen or pageÇæ1)Ç
- LK str sent by left-arrow-key, if not kl
- ll str last line, first column, if no cm
- lm num no. of lines in memory if > li (0 means varies)
- ma str arrow key map, used by vi version 2 only
- mb str video-attr blinking on
- md str video-attr bold on
- üme str video-attr all attributes offÇæ1)Ç
- mh str video-attr half-bright (dim) on
- mi bool safe to move while in insert mode
- mk str video-attr blank (invisible) on
- ml str memory lock on above cursor
- MN str sent by minus-sign-key
- MP str multiplan initialization string
- mp str video-attr protected on
- MR str multiplan reset string
- ümr str video-attr reverse onÇæ1)Ç
- ms bool safe to move while in standout modes
- mu str memory unlock (turn off memory lock)
- nc bool not correctly working carriage return (dm2500, h2000)
- ünd str non-destructive-space (cursor right)Çæ1)Ç
- nl str (P*) newline character (default \n)
- ns bool terminal is crt but doesn`t scroll
- NU str sent by next-unlocked-cell-key
- os bool terminal overstrikes
- pc str pad-character rather than null
- PD str sent by page-down-key
- PL str sent by page-left-key
- PR str sent by page-right-key
- PS str sent by plus-sign-key
- üpt bool has hardware-tabs (may need to set with is)Çæ1)Ç
- PU str sent by page-up-key
- RC str sent by recalc-key
- RF str sent by toggle-reference-key
- RK str sent by right-arrow-key, if not kr
- RT str sent by return-key
- üse str end standout modeÇæ1)Ç
- sf str (P) scroll forwards
- sg num number of blank characters left by so or se
- üso str start standout modeÇæ1)Ç
- üsr str (P) scroll reverse (backwards)Çæ1)Ç
- TA str sent by toggle-autocase-key
- ta str (P) tab (other than ^I or with padding)
- TB str sent by tab-key
- tc str entry of similar terminal - must be last
- te str string to end programs that use cm
- TI str sent by toggle-autoinsert-key
- ti str string to start programs that use cm
- ts str goto status-line col 1
- uc str underscore one character and move past it
- ue str end underscore mode
- ê
- æ
- 1)wirdvonvt52unterstütztê
- ______________________________________________________________________
- êAnhangtermcap Anhang
-
- Ç
-
- ug num number of blank characters left by ue or us
- UK str sent by up-arrow-key, if not ku
- ul bool terminal underlines even thou it doesn`t overstrike
- üup str upline (cursor up)Çæ1)Ç
- us str start underscore mode
- vb str visible bell (may not move cursor)
- ve str end open/visual mode
- vs str start open/visual mode
- WL str sent by word-left-key
- WR str sent by word-right-key
- ws num no. of avail columns in statusline
- xb bool beehive (f1=esc, f2=^C)
- xn bool a newline is ignored after wrap (concept)
- xr bool return acts like ce (\r\n) (delta data)
- xs bool stand out not erased by writing over it (hp 264x)
- xt bool tabs are destructive, magic so character
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- æ
- 1)wirdvonvt52unterstütztÇ
-
- ê______________________________________________________________________
- 9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆........]0010
- êAnhangAtari-Termcap Anhang
- Ç
-
-
- üNAMEÇ
-
- àtermcap-DateiderTerminal-EigenschaftenÇ
-
-
-
- st520:\
- :co#80:li#25:bs:pt:\
- :cm=\EY%d%d:up=\EA:do=\EB:nd=\EC:le=\ED:ho=\EH:sr=\EM:\
- :cd=\EJ:ce=\EK:cl=\EE:cL=\EK:cS=\EJ:\
- :CF=\Ef:CO=\Ee:\
- :al=\EL:dl=\EM:ic=\E@:dc=\EP:im=:ei=:\
- :mr=\Ep:me=\Eq:so=\Ep:se=\Eq:\
- :is=\EE:ir=\EE:rs=\E[?5l:\
- :ku=\EH:kd=\EP:kr=\EM:kl=\EK:kh=\EG:kb=^H:\
- :k0=\E\073:k1=\E\074:k2=\E\075:k3=\E\076:k4=\E\077:\
- :k5=\E\080:k6=\E\081:k7=\E\082:k8=\E\083:k9=\E\084:\
- :kA=\ET:kB=\EU:kC=\EV:kD=\EW:kE=\EX:kF=\EY:\
- :Al=\E\060:kN=\E2:HP=\Eb:kI=\ER:sc=\E7:rc=\E8:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
- êAnhangAtari vt52-Escapes Anhang
-
-
-
- ü ESC A - Cursor Up
- ÇDerCursorspringteineZeilenachoben,sofernersich
- nichtbereitsindererstenZeilebefindet;dieSpalten-
- positionwirdnichtgeändert.
-
- ü ESC B - Cursor DownÇ
- DerCursorwirdaufdienächstenZeilegleicheSpalteposi-
- tioniert,jedochnurfallsersichnichtschoninderletz-
- tenZeilebefindet.
-
- üESC C - Cursor RightÇ
- DerCursorwirdumeineSpaltenachrechtsverschoben,
- jedochnicht,wennersichbereitsinderletztenSpalte
- befindet.
- ü
- ESC D - Cursor Left
- Ç DerCursorwirdumeineSpaltenachlinkspositioniert,
- jedochnur,wennersichnichtindererstenSpaltebefin-
- det.
-
- üESC E - Clear ScreenÇ
- DerBildschirmwirdgelöschtundderCursoraufdieerste
- Zeile,ersteSpaltepositioniert.
-
- ü ESC H - CursorHomeÇ
- DerCursorwirdindieersteZeile,ersteSpaltepositio-
- niert.
-
- ü ESC I - Reverse IndexÇ
- WieCursorUp;istderCursorbereitsindererstenZeile,
- soscrolltderBildschirmumeineZeilenachunten.
- ü
- ESC J - Erase to End of Screen
- Ç LöschtdenBildschirmabderaktuellenPositionbiszum
- EndedesBildschirmes.
-
- ü ESC K - Erase to End of LineÇ
- LöschtdieaktuelleZeilevonderCursorpositionbiszum
- EndederZeile.
-
- ü ESC L - Insert LineÇ
- FügteineleereZeileanderaktuellenPositionein.Der
- CursorwirdandenAnfangderneuenZeilepositioniert.
- DieeventuellfolgendenZeilenwerdenumeineZeilenach
- untenverschoben.
-
- ü ESC M - Delete LineÇ
- LöschtdieaktuelleZeile;dienachfolgendenZeilenwerden
- umeineZeilenachobengescrollt.
- ê
- Ç ü ESC Y %c%c - Position CursorÇ
- DerCursorwirdaufdiePosition%c%c(Spalte,Zeile)
- gesetzt.DieNullpositionistdabeidielinkeobereBild-
- schirmecke(wiebeiCursorHome).DieWertefürdiePosi-
- tionenwerdendurchASCII-Zeichenab32(Leerzeichen)
- bestimmt.
- ê
-
-
- ______________________________________________________________________
- êAnhangAtari vt52-Escapes Anhang
-
-
- Ç
- ü ESC b %c - Set Foreground ColorÇ
- BeiFarbdarstellungwirddieVordergrundfarbeentsprechend
- demWertvon%c,nurdieletztenvierBitssindrelevant,
- gesetzt.
-
- ü ESC c %c - Set Background ColorÇ
- Hintergrundfarbesetzen,sieheoben.
-
- ü ESC d - Erase toBeginning of DisplayÇ
- DerBildschirmwirdvomAnfangbiszurCursorposition
- einschließlichgelöscht.
-
- ü ESC e - Enable CursorÇ
- DerCursorwirdangeschaltet.
-
- ü ESC f - Disable CursorÇ
- DerCursorwirdausgeschaltet.
- ü
- ESC j - Save Cursor Position
- Ç DieaktuelleCursorpositionwirdgespeichert.
-
- ü ESC k - Restore Cursor PositionÇ
- DerCursorwirdaufdieletztemitSaveCursorPositionge-
- speichertePositiongesetzt.
-
- ü ESC l - Erase Entire LineÇ
- DieaktuelleZeilewirdgelöschtundderCursoraufdie
- ersteSpaltedieserZeilegesetzt.
-
- ü ESC o - Erase Beginning of LineÇ
- DieaktuelleZeilewirdvomZeilenanfangbiszumCursor
- einschließlichgelöscht.
-
- üESC p - Enter Inverse Video ModeÇ
- JedefolgendeTextausgabewirdininverserDarstellung
- (weißeSchriftaufschwarzemHintergrund)geschrieben.
-
- ü ESC q - Exit Inverse Video ModeÇ
- JederfolgendeTextwirdinnormalerTextdarstellungaus-
- gegeben.
-
- ü ESC v - Wrap at End of LineÇ
- JedeTextausgabe,dieüberdasEndederZeilehinausgehen
- würde,wirdindernächstenZeiledargestellt.
-
- ü ESC w - Discard at End of LineÇ
- JedeTextausgabe,dieüberdasEndederZeilehinausgehen
- würde,wirdnuraufderletztenSpaltedargestellt,also
- dasletzteZeichenwirdimmerwiederüberschrieben.
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________Ç
- 8000100001\INDEX1.IMG
- ê
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\INDEX2.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8000100001\INDEX3.IMG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- êIndex Index
- Ç
-
-
- editfld ................................................. 88
-
- getarg .................................................. 84
- GetArg .................................................. 84
-
- libstr .................................................. 8
-
- memchr .................................................. 44
- memcmp .................................................. 44
- memcpy .................................................. 44
- memset .................................................. 34
-
- PMDesel ................................................. 69
- pmexec .................................................. 65
- pmselect ................................................ 69
- PMSelect ................................................ 69
- PushBOOL ................................................ 75
- PushBYTE ................................................ 75
- PushDOUBLE .............................................. 75
- PushFLOAT ............................................... 75
- PushLONG ................................................ 75
- PushPOINTER ............................................. 75
- PushSTRING .............................................. 75
- PushULONG ............................................... 75
- PushUWORD ............................................... 75
- PushWORD ................................................ 75
-
- stack ................................................... 71
- stackdel ................................................ 74
- stackdepth .............................................. 81
- stackempty .............................................. 80
- stackname ............................................... 83
- stacknew ................................................ 72
- StackNew ................................................ 72
- stackpop ................................................ 77
- stackpush ............................................... 75
- stackshow ............................................... 79
- stacktop ................................................ 77
- stacktype ............................................... 82
- stradj .................................................. 9
- stradjl ................................................. 9
- stradjr ................................................. 9
- strcat .................................................. 10
- strcatn ................................................. 10
- strchr .................................................. 11
- strcmp .................................................. 12
- strcnvl. ................................................ 14
- strcnvul ................................................ 14
- strcpy .................................................. 16
- strcpyn ................................................. 16
- strcspn ................................................. 18
- strctr .................................................. 19
- strdup .................................................. 20
- stremp .................................................. 21
- strfnd .................................................. 22
- strfroml ................................................ 23
- strfromul ............................................... 23
-
-
- ê______________________________________________________________________Ç
- êIndex Index
- Ç
-
-
- strichr ................................................. 11
- stricmp ................................................. 12
- stricspn ................................................ 18
- strifnd ................................................. 22
- strimat ................................................. 27
- strinv .................................................. 24
- stripbrk ................................................ 29
- stripos ................................................. 30
- strirchr ................................................ 11
- strirpbrk ............................................... 29
- strirpl ................................................. 33
- strirpos ................................................ 30
- strirsort ............................................... 36
- strirstr ................................................ 37
- striscmp ................................................ 12
- strisort ................................................ 36
- strispn ................................................. 18
- stristr ................................................. 37
- strlen .................................................. 25
- strlwr .................................................. 26
- strlwrg ................................................. 26
- strmat .................................................. 27
- strn0cpy ................................................ 16
- strncat ................................................. 10
- strncatn ................................................ 10
- strncmp ................................................. 12
- strncpy ................................................. 16
- strncpyn ................................................ 16
- strndup ................................................. 20
- strnemp ................................................. 21
- strnicmp ................................................ 12
- strnimat ................................................ 27
- strninv ................................................. 24
- strnirpl ................................................ 33
- strniscmp ............................................... 12
- strnlwr ................................................. 26
- strnlwrg ................................................ 26
- strnmat ................................................. 27
- strnrotl ................................................ 32
- strnrotr ................................................ 32
- strnrpl ................................................. 33
- strnscmp ................................................ 12
- strnset ................................................. 34
- strnspc ................................................. 34
- strnupr ................................................. 42
- strnuprg ................................................ 42
- strpbrk ................................................. 29
- strpcpy ................................................. 16
- strpos .................................................. 30
- strptrm ................................................. 40
- strptrml ................................................ 40
- strptrmr ................................................ 40
- strrchr ................................................. 11
- strrev .................................................. 31
- strrotl ................................................. 32
- strrotr ................................................. 32
- strrpbrk ................................................ 29
-
-
- ê______________________________________________________________________Ç
- êIndex Index
- Ç
-
-
- strrpl .................................................. 33
- strrpos ................................................. 30
- strrsort ................................................ 36
- strrstr ................................................. 37
- strscmp ................................................. 12
- strset .................................................. 34
- strsort ................................................. 36
- strspc .................................................. 34
- strspn .................................................. 18
- strsset ................................................. 34
- strstr .................................................. 37
- strtof .................................................. 39
- strtok .................................................. 38
- strtol .................................................. 39
- strtoul ................................................. 39
- strtrm .................................................. 40
- strtrml ................................................. 40
- strtrmr ................................................. 40
- strupr .................................................. 42
- struprg ................................................. 42
- strwupr ................................................. 42
- subnstr ................................................. 43
- substr .................................................. 43
- system .................................................. 87
-
- t_beep .................................................. 55
- t_box ................................................... 63
- t_cblink ................................................ 58
- t_cdown ................................................. 60
- t_chome ................................................. 60
- t_cleft ................................................. 60
- t_cleol ................................................. 56
- t_cleos ................................................. 56
- t_cls ................................................... 56
- t_cright ................................................ 60
- t_csteady ............................................... 58
- t_cup ................................................... 60
- t_cursoff ............................................... 57
- t_curson ................................................ 57
- t_cursstat .............................................. 57
- t_exit .................................................. 53
- t_getc .................................................. 59
- t_goxy .................................................. 60
- t_hline ................................................. 63
- t_init .................................................. 52
- t_invoff ................................................ 61
- t_invon ................................................. 61
- t_rawoff ................................................ 54
- t_rawon ................................................. 54
- t_setatt ................................................ 61
- t_settw ................................................. 62
- t_vline ................................................. 63
- termcap ................................................. 96
- tgetent ................................................. 46
- tgetflag ................................................ 48
- tgetnum ................................................. 47
-
-
-
- ê______________________________________________________________________Ç
- êIndex Index
- Ç
-
-
- tgetstr ................................................. 49
- tgoto ................................................... 50
- tputs ................................................... 51
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ê______________________________________________________________________
-