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:
Bei GanzesWort gleich 1 muss das gesuchte Wort zwischen Trennzeichen (Leerzeichen oder Satzzeichen) stehen. Bei GanzesWort gleich 0 kann der String entweder ein ganzes Wort oder Teil eines längeren Wortes sein.
Bei Großschreibung gleich 1 beachtet die Suchfunktion die Groß- und Kleinschreibung. Suchen Sie dann 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;1;1)>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];*)