4D v16.3GET TEXT KEYWORDS |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
GET TEXT KEYWORDS
|
GET TEXT KEYWORDS ( Text ; arrKeywords {; *} ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
Text | Text |
![]() |
Originaltext | |||||
arrKeywords | Array Text |
![]() |
Array mit Schlüsselwörtern | |||||
* | Operator |
![]() |
Mit Stern: einmalige Wörter | |||||
Der Befehl GET TEXT KEYWORDS zerteilt alle Parameter Text in einzelne Wörter und erstellt für jedes Wort einen Eintrag im Array arrKeywords.
4D verwendet zum Aufteilen von Text in einzelne Wörter denselben Algorithmus wie zum Erstellen von Volltext-Index. Er basiert auf der ICU Library. Weitere Informationen dazu finden Sie unter folgender Adresse: http://userguide.icu-project.org/boundaryanalysis.
Hinweis: Auf vielfachen Wunsch haben wir für Französisch und Italienisch eine Ausnahme eingeführt: Folgt auf den Apostroph (') ein Vokal oder der Buchstabe "h", gilt er als Worttrenner. Zum Beispiel: die Zeichenketten "L'homme" oder "l'arbre" werden geteilt in "L’"+"homme" und "l'"+"arbre".In einem Formular mit einem Suchbereich kann der Benutzer ein oder mehrere Wörter eingeben. Bestätigt er dieses Formular, suchen wir nach Datensätzen, in denen das Datenfeld MyField mindestens eins der vom Benutzer eingegebenen Wörter enthält.
// vSearch ist die Variable des Suchbereichs im Formular
GET TEXT KEYWORDS(vSearch;arrSearch;*)
//* falls der Benutzer das gleiche Wort mehr als einmal eingibt
CREATE SET([MyTable];"Totalfound")
$n:=Size of array(arrSearch)
For($i;1;$n)
QUERY([MyTable];[MyTable]MyField % arrSearch{$i})
CREATE SET(([MyTable];"found")
UNION("Totalfound";"found";"Totalfound")
End for
USE SET("Totalfound")
Im gleichen Formular wie oben suchen wir nach Datensätzen, wo das Feld MyField alle vom Benutzer eingegebenen Wörter enthält.
// vSearch ist die Variable des Suchbereichs im Formular
GET TEXT KEYWORDS(vSearch;arrSearch;*)
$n:=Size of array(arrSearch)
QUERY([MyTable];[MyTable]MyField >=0;*)
// Suche initialisieren = alle Datensätze
For($i;1;$n)
QUERY([MyTable];&;[MyTable]MyField % arrSearch{$i};*)
// Kriterium hinzufügen
End for
QUERY([MyTable]) //search
Wörter in einem Text zählen:
GET TEXT KEYWORDS(vText;arrWords) // Alle Wörter
$n:=Size of array(arrWords)
GET TEXT KEYWORDS(vText;arrWords;*) // verschiedene Wörter
$m:=Size of array(arrWords)
ALERT("Dieser Text enthält "+String($n)+" separate Wörter unter "+String($m))
Produkt: 4D
Thema: String
Nummer:
1141
Erstellt: 4D v13
4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)