WR Direct find

4D - Documentation   Français   English   German   4D Write, Befehle nach Thema   4D Write, Befehle alphabetisch   Konstanten nach Thema   Back   Previous   Next

Version 6.5


WR Direct find (Blob; String; GanzesWort; Großschreibung) Lange Ganzzahl

ParameterTypBeschreibung
BlobBLOBBlob
StringAlphaZu suchender String
GanzesWortGanzzahl0=Teilweise Übereinstimmung
1=GanzesWort
GroßschreibungGanzzahl0=Ignoriere Großschreibung
1=Berücksichtige Großschreibung
FunktionsergebnisLange GanzzahlStatus 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];*)

4D - Documentation   Français   English   German   4D Write, Befehle nach Thema   4D Write, Befehle alphabetisch   Konstanten nach Thema   Back   Previous   Next