home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Best of German Only 1
/
romside_best_of_german_only_1.iso
/
anwender
/
zephyr
/
zephyr4s.2
/
BEISPIEL.EXE
/
lha
/
SUCHE.PRG
< prev
next >
Wrap
Text File
|
1991-02-07
|
3KB
|
68 lines
*** SUCHE.PRG ***
*** Such-Eingabe nach einem zuvor definierten Begriff ***
*********************************************************
********************************************************************************
*- Ohne folgende Variablen funktioniert das Programm nicht !!
*- Folgende Variablen müssen zuvor festgelegt worden sein:
*- Mbegriff = Das Such-Wort, das der Anwender auf dem Schirm liest
*- Meingabe = Das eigentliche Eingabe-GET-Feld
*- Msuchtyp = der Feld-Typ des Eingabe-Feldes (Charakter,Numerisch,Datum etc.)
*- Mzahlfeld = Feld, nach dem die Datensätze der Datei nummeriert werden
********************************************************************************
PUBLIC Mrec && "Mrec" wird die Nummer des gefundenen Records
IF Msuchtyp = "N" && Wenn gesuchtes Feld ein Nummern-Feld ist...
Meingabe = SPACE(5) && ist die Eingabe ein 5 Zeichen langes Leerfeld
ENDIF
MPlatz = len(Meingabe) + len(Mbegriff) + 14 && die Breite des Window wird
Meldlang = len(Mbegriff) + 34 && errechnet
Mplatz = IIF(Mplatz < Meldlang,Meldlang,Mplatz)
Mpos = 40 - (Mplatz/2) && Schirm-Mitte errechnen!
SET EXACT OFF
DO WHILE .T. && Schleife erst verlassen, wenn gefunden!
DEFINE WINDOW Suche FROM 5,Mpos-1 TO 9,Mpos + Mplatz DOUBLE COLOR GR+/N
ACTIVATE WINDOW Suche && Such-Window definieren + aktivieren !
CLEAR && Window leer!
@ 1,2 SAY Mbegriff + " eingeben:" GET Meingabe MESSAGE "Liste(Return) - Abbruch(Esc)"
READ && eigentliche Eingabe
IF READKEY() = 12 .OR. READKEY() = 127 && Bei "Esc" aussteigen!
DEACTIVATE WINDOW Suche
RETURN TO MASTER && ganz zurück z. Hauptprog.
ENDIF
Xeingabe = LTRIM(TRIM(Meingabe))
IF Msuchtyp = "N" && wenn Eingabe eine Zahl, dann Zeichen-
Xeingabe = VAL(Xeingabe) && Feld in Zahl umwandeln!
ENDIF
SET MESSAGE TO "Blättern:(" + CHR(24) + CHR(25) + ") - Bestätigen:(Esc)"
SET ORDER TO &Msuch && Sortier-Ordnung wie gewünscht einstell.
IF LEN(TRIM(Meingabe)) = 0 && Wenn Eingabe leer, dann Liste zeigen!
DEACTIVATE WINDOW Suche
DEFINE WINDOW Liste FROM 1,10 TO 20,79 COLOR GR+/N
ACTIVATE WINDOW Liste
GO TOP
BROWSE NOEDIT NOAPPEND NOMENU
DEACTIVATE WINDOW Liste
ELSE && - wenn Eingabe gemacht,
SEEK Xeingabe && suche Eingabe!
ENDIF
IF .NOT. FOUND() && Wenn nicht gefunden, Meldung!
CLEAR
Meldpos = IIF(Mplatz = Meldlang,1,(Mplatz-Meldlang)/2)
@ 1,Meldpos SAY Mbegriff + " NICHT gefunden. - eine TASTE!"
DO Taste && Tastendruck abwarten!
ELSE
Mrec = RECNO() && wenn gefunden, merke dir die Nummer
EXIT && des Datensatzes mit "Mrec"
ENDIF
ENDDO
DEACTIVATE WINDOW Suche
RETURN && jetzt gehe zurück - von dort aus
&& zum eigentlichen Bearbeitungsprogramm
* EOF(Suche.PRG)