Dieses Dokument behandelt die folgenden Themen:
Eine bestimmte Zeichenkette (Suchwert) in einem Dokument suchen.
Die folgenden Dokumentelemente können nach dem Suchwert durchsucht werden: Beschreibung, Dokumentrumpf, Begleitschreiben, Anlagen und Notizen. Dies ist von dem Wert abhängig, der im Parameter Zu-durchsuchende-Elemente angegeben wird.
Durchsucht werden nur Dokumente und Anlagen mit den Dokumentformaten 0 (Txt) und 1 (Cnf).
Dieses Subprogramm durchsucht zuerst die Beschreibung, dann den Begleitschreibentext, den Dokumentrumpf, die Anlagen und zum Schluß die Notizen.
Dieses Subprogramm gibt keine Suchwerte aus, die eine Zeile überschreiten. Wenn zum Beispiel eine Instanz des Suchwertes John Eshberry in Zeile 22 beginnt und in Zeile 23 endet, wird diese Instanz nicht ausgegeben.
Wenn Sie den Parameter Suche-mit-Muster markieren, können Sie den Suchwert als Muster definieren. In diesem Fall kann eines der folgenden Symbole im Suchwert enthalten sein:
Punkt (.), Fragezeichen (?) oder Unterstrich (_). Diese Symbole werden verwendet, wenn einzelne Positionen ignoriert werden soll. Beispiel: wenn C?????M als Suchwert definiert ist, können die Zeichenketten CONFORM und Cadmium gefunden werden.
Stern (*) oder Prozentzeichen (%). Diese Symbole werden verwendet, wenn mehrere aufeinander folgende Positionen ignoriert werden sollen. Beispiel: wenn C*M als Suchwert definiert ist, können die Zeichenketten Chrom, Cham, CD-ROM und auch Champagner gefunden werden.
Die Verarbeitungslogik des Parameters Suche-mit-Muster basiert auf dem Natural-Statement EXAMINE und dessen Option PATTERN. Weitere Informationen hierzu finden Sie der Natural-Dokumentation.
Wenn keine Instanz des Suchwerts gefunden wird, wird der Return-Code 90 ausgegeben.
Jede Textzeile, die den Suchwert enthält, wird im Array Textliste ausgegeben.
Sie sollten dieses Subprogramm solange iterativ aufrufen, bis der Return-Code 77 darauf hinweist, dass das Dokument, einschließlich aller Begleitschreiben, Anlagen und Notizen durchsucht wurde.
Anmerkungen:
Parameter | Format | Ein | Aus | Bemerkung |
---|---|---|---|---|
Return-Code | N2 | O | X | Eingabe -1: kein ET. |
Buero | A8 | E | Das Büro, in dem das zu durchsuchende Dokument enthalten ist. | |
Passwort | A8 | E | Das Passwort des o.g. Büros. | |
Dokumentname | A32 | E* | Der Name des Dokuments, das Sie durchsuchen wollen. Entweder Dokumentname oder ISN, nicht beides. | |
ISN | P10 | E* | Die ISN des Dokuments, das Sie durchsuchen wollen. Entweder ISN oder Dokumentname, nicht beides. | |
Suchwert | A32 | E | Zeichenkette, nach der im Dokument gesucht werden soll. | |
Suche-mit-Delimiter | A1 | O | Wenn markiert, wird die Suche auf ganze Wörter beschränkt (d.h. auf Zeichenketten, die nicht von Leerzeichen oder beliebigen alphanumerischen Zeichen umgeben ist). Wenn nicht markiert, wird jede Zeichenkette gefunden, die dem Suchwert entspricht, und zwar unabhängig von den Zeichen, die direkt vor oder hinter der Zeichenkette stehen. | |
Suche-mit-Muster | A1 | O | Wenn markiert, wird der Suchwert als Muster verwendet. In diesem Fall geben bestimmte Symbole im Suchwert (Punkt, Fragezeichen, Unterstrich, Stern und Prozentzeichen) die Position(en) an, die ignoriert werden soll(en). | |
Gross-/Kleinschreibung-unterscheiden | A1 | O | Wenn markiert, wird bei der Suche zwischen Groß- und Kleinschreibung unterschieden. Wenn nicht markiert, werden alle Buchstaben, unabhängig von Groß- und Kleinschreibung, gefunden. | |
Zu-durchsuchende-Elemente | A5 | E | Die Elemente des Dokuments, die durchsucht werden sollen: D=Beschreibung (Description), B=Dokumentrumpf (Body of the document), C=Begleitschreiben (Cover note), E=Anlage (Enclosed document), N=Notiz. Beispiel: DBC bedeutet, dass nur Beschreibung, Dokumentrumpf und Begleitschreiben durchsucht werden sollen. | |
Dokumentformat | A1 | X | Format des Dokumentrumpfes. Siehe Dokumentformate. | |
Zeilen-in-Textliste | P2 | X | Anzahl der Textzeilen, die mit dem aktuellen Subprogrammaufruf im Parameter Textliste ausgegeben werden. | |
Textliste (20) | ||||
Durchsuchtes-Dokumentelement | A1 | X | D=Beschreibung (Description), B=Dokumentrumpf (Body of the document), C=Begleitschreiben (Cover note), E=Anlage (Enclosed document), N=Notiz. | |
Element-Sequenznummer | P3 | X | Für Beschreibung und Dokumentrumpf wird die Sequenznummer 1 ausgegeben. Bei allen anderen Elementen des Dokuments wird die jeweilige Sequenznummer des Begleitschreibens, der Anlage oder der Notiz ausgegeben. | |
Zeile-Sequenznummer | P7 | X | Interne sequentielle Zeilennummer eines Elements. Für den Dokumenttext ist dies die Nummer, die im "Dokument zeigen"-Schirm angezeigt wird. | |
Anzahl-gefundene-Zeichenketten | P3 | X | Anzahl, wie oft eine Zeichenkette in dieser Zeile gefunden wurde. | |
Textzeile | A250 | X | Textzeile, in der der Suchwert gefunden wurde. | |
Work-Parameter-1 | A240 | Für den internen Gebrauch. Siehe Work-Parameter. | ||
Work-Parameter-2 | A91 | Für den internen Gebrauch. Siehe Work-Parameter. |
00 | Erfolg |
02 | Ungültiger Büroname oder - nur im Batch-Betrieb - Büro gesperrt |
03 | Falsches Passwort |
04 | ISN wurde nicht gefunden |
08 | Geben Sie entweder ISN oder Name ein - nicht beides |
09 | ISN zeigt nicht auf das richtige Objekt |
15 | Ungültiger Administratorstatus |
51 | Ungültiger Name |
53 | Das gewünschte Objekt existiert nicht |
57 | Das Dokument enthält keinen Text |
77 | Ende des Objekts |
90 | Falsches Element |
91 | Zeichenkette nicht gefunden |
92 | Geben Sie einen Suchwert an |
Z-120
Z-122
Z-123
Z-165
Z-175
Z-194
Z-197
Z-222
Z-223
Z-400
Z-401
Z-1200&0
0010 * 0020 * Zeichenkette in allen Dokumenten eines Bueros suchen 0030 * 0040 * 0050 DEFINE DATA LOCAL 0060 1 DIS-RETURN-CODE (N2) 0070 1 BUERO (A8) 0080 1 PASSWORT (A8) 0090 1 FACHNAME (A15) 0100 1 ORDNERNAME (A15) 0110 1 ORDNERNUMMER (N5) 0120 1 FACHNUMMER (N5) 0130 1 FACHABLAGEFOLGE (N1) 0140 1 STARTWERT (A32) 0150 1 ANZAHL (N2) 0160 1 DOKUMENTLISTE (1:20) 0170 2 ISN (P8) 0180 2 DOKUMENTNAME (A32) 0190 2 BESCHREIBUNG (A60) 0200 2 DOKUMENTFORMAT (A1) 0210 2 ABGELEGT-IN-ORDNER (A15) 0220 2 DATUM-ABGELEGT (N8) 0230 2 ABSENDER-/EMPFAENGERNAME (A20) 0240 2 POSTZAEHLER (N7) 0250 1 WORK-PARAMETER (A49) 0260 * 0270 1 SCAN-RETURN-CODE (N2) 0280 1 SCAN-DOKUMENTNAME (A32) 0290 1 SCAN-ISN (P10) 0300 1 SUCHWERT (A32) 0310 1 ZU-DURCHSUCHENDE-ELEMENTE (A5) 0320 1 SUCHE-MIT-DELIMITER (A1) 0330 1 SUCHE-MIT-MUSTER (A1) 0340 1 GROSS-/KLEINSCHREIBUNG-UNTERSCHEIDEN (A1) 0350 1 SCAN-DOKUMENTFORMAT (A1) 0360 1 ZEILEN-IN-TEXTLISTE (P2) 0370 1 TEXTLISTE (1:20) 0380 2 DURCHSUCHTES-DOKUMENTELEMENT (A1) 0390 2 ELEMENT-SEQUENZNUMMER (P3) 0400 2 ZEILE-SEQUENZNUMMER (P7) 0410 2 ANZAHL-GEFUNDENE-ZEICHENKETTEN (P3) 0420 2 TEXTZEILE (A250) 0430 1 WORK-PAR-1 (A240) 0440 1 WORK-PAR-2 (A91) 0450 * 0460 1 #INX1 (N2) 0470 1 #INX2 (N2) 0480 1 ERSTER-IN-DOKUMENT (L) 0490 1 ZEICHENKETTE-GEFUNDEN (L) 0500 END-DEFINE 0510 * 0520 INPUT (AD=I) 0530 'BUERO' BUERO / 0540 'PASSWORT' PASSWORT / 0550 'SUCHWERT' SUCHWERT / 0560 'ZU DURCHSUCHENDE ELEMENTE' ZU-DURCHSUCHENDE-ELEMENTE / 0570 * 0580 MOVE TRUE TO ZEICHENKETTE-GEFUNDEN 0590 REPEAT UNTIL DIS-RETURN-CODE EQ 77 0600 CALLNAT 'Z-DIS11' 0610 DIS-RETURN-CODE 0620 BUERO 0630 PASSWORT 0640 FACHNAME 0650 ORDNERNAME 0660 FACHNUMMER 0670 ORDNERNUMMER 0680 FACH-ABLAGEFOLGE 0690 STARTWERT 0700 ANZAHL 0710 DOKUMENTLISTE (*) 0720 WORK-PARAMETER 0730 IF DIS-RETURN-CODE NE 0 AND DIS-RETURN-CODE NE 77 0740 WRITE 'Z-DIS11 unterbrochen. Fehler-Code' DIS-RETURN-CODE 0750 STOP 0760 END-IF 0770 * 0780 FOR #INX1=1 TO 20 0790 IF ISN (#INX1) NE 0 THEN 0800 MOVE ISN (#INX1) TO SCAN-ISN 0810 MOVE TRUE TO ERSTER-IN-DOKUMENT 0820 * 0830 REPEAT UNTIL SCAN-RETURN-CODE EQ 77 0840 CALLNAT 'Z-SCAN11' 0850 SCAN-RETURN-CODE 0860 BUERO 0870 PASSWORT 0880 SCAN-DOKUMENTNAME 0890 SCAN-ISN 0900 SUCHWERT 0910 SUCHE-MIT-DELIMITER 0920 SUCHE-MIT-MUSTER 0930 GROSS-/KLEINSCHREIBUNG-UNTERSCHEIDEN 0940 ZU-DURCHSUCHENDE-ELEMENTE 0950 SCAN-DOKUMENTFORMAT 0960 ZEILEN-IN-TEXTLISTE 0970 TEXTLISTE (*) 0980 WORK-PAR-1 0990 WORK-PAR-2 1000 * 1010 DECIDE ON FIRST VALUE OF SCAN-RETURN-CODE 1020 VALUE 0, 77 1030 IF ERSTER-IN-DOKUMENT 1040 WRITE (AD=I) / '-' (79) / 'Zeichenkette in: Dokument' 1050 DOKUMENTNAME (#INX1) (AL=21) '(siehe Text unten)' 1060 MOVE TRUE TO ZEICHENKETTE-GEFUNDEN 1070 MOVE FALSE TO ERSTER-IN-DOKUMENT 1080 END-IF 1090 FOR #INX2 1 ZEILEN-IN-TEXTLISTE 1100 WRITE TEXTZEILE (#INX2) (AL=79) 1110 END-FOR 1120 VALUE 91, 57 1130 IF ZEICHENKETTE-GEFUNDEN 1140 WRITE / '-' (79) / 'Zeichenkette nicht in:' 1150 MOVE FALSE TO ZEICHENKETTE-GEFUNDEN 1160 END-IF 1170 WRITE (AD=I) 25T 'Dokument' DOKUMENTNAME (#INX1)(AL=21) 1180 ESCAPE BOTTOM 1190 NONE VALUE 1200 WRITE 'Z-SCAN11 unterbrochen. Fehler-Code' SCAN-RETURN-CODE 1210 STOP 1220 END-DECIDE 1230 * 1240 END-REPEAT 1250 RESET SCAN-RETURN-CODE SCAN-DOKUMENTNAME WORK-PAR-1 WORK-PAR-2 1260 END-IF 1270 END-FOR 1280 END-REPEAT 1290 END