Version 6.5
WR Direct find (Blob; String; GanzesWort; Großschreibung) Lange Ganzzahl
| Parameter | Typ | Beschreibung | |
| Blob | BLOB | Blob | |
| String | Alpha | Zu suchender String | |
| GanzesWort | Ganzzahl | 0=Teilweise Übereinstimmung | |
| 1=GanzesWort | |||
| Großschreibung | Ganzzahl | 0=Ignoriere Großschreibung | |
| 1=Berücksichtige Großschreibung | |||
| Funktionsergebnis | Lange Ganzzahl | Status der Suche |
Beschreibung
Mit der Funktion WR Direct find suchen Sie in einem BLOB mit einem 4D Write Bereich direkt nach einem String. Mit WR Direct find muss nicht zuvor das BLOB in einem 4D Write Bereich geöffnet werden. Von daher wird diese Funktion sehr schnell ausgeführt.
Wird der String gefunden, gibt WR Direct find seine Position im Text zurück.
War die Suche erfolglos, gibt WR Direct find den Wert -1 zurück.
Stellt Blob nicht den Inhalt eines 4D Write Bereichs dar, gibt WR Direct find den Wert -2 zurück.
GanzesWort und Großschreibung grenzen die Suche ein
Im Parameter GanzesWort können Sie eine der folgenden Konstanten unter dem Thema WR Parameter übergeben:
| wr partial match (0) | Der String ist entweder ein ganzes Wort oder Teil eines längeren Wortes. |
| wr whole word (1) | Das gesuchte Wort muss zwischen Trennzeichen (Leerzeichen |
| oder Satzzeichen) stehen. |
Im Parameter Großschreibung können Sie eine der folgenden Konstanten unter dem Thema WR Parameter übergeben:
| wr ignore uppercase (0) | Die Suche unterscheidet nicht zwischen Groß- und Kleinschreibung. |
| Suchen Sie nach HALLO, wird Hallo, hallo und HALLO gefunden. | |
| wr case sensitive (1) | Die Suche unterscheiden zwischen Groß- und Kleinschreibung. |
| Suchen Sie nach "HALLO", wird "Hallo" nicht gefunden. |
Beispiel
Dieses Beispiel zeigt die Suche nach einem Schlüsselwort. Ihre Datenbank verwaltet Kochrezepte. Die 4D Write Bereiche sind in Datenfeldern vom Typ BLOB gesichert. Sie wollen alle Rezepte finden, die eine bestimmte Zutat verwenden. Hier die entsprechende Methode dazu, die sehr schnell ist:
Suchen:=Request("Gib die gesuchte(n) Zutaten ein:")
`Erstelle eine leere Menge, die alle gefundenen Datensätze aufnimmt
CREATE EMPTY SET([MeineRezepte];"GefundeneDatensätze")
ALL RECORDS([MeineRezepte]) `Durchlaufe die gesamte Auswahl der Tabelle
While (Not(End selection([MeineRezepte])))
If (WR Direct find ([MeineRezepte]BlobRezept_;Suchen;wr whole word;wr case sensitive)>0)
`Wird die Zutat gefunden, füge Datensatz der Menge hinzu
ADD TO SET([MeineRezepte];"GefundeneDatensätze")
End if
NEXT RECORD([MeineRezepte])
End while
USE SET("GefundeneDatensätze")
OUTPUT FORM([MeineRezepte];"Ausgabe")
MODIFY SELECTION([MeineRezepte];*)
Referenz