hab mal was ganz einfaches gebaut (auf Basis eines Postings wegen Überlänge eines Suchstring bei db.search)...
Man nehme ein Feld_1 befüllt mit normalen Text.
Dann strippe man alle a-e-i-o-u´s weg.
Die Ersparnis ist ca. 30% je länger der Text.
Je kürzer umso kleiner wird die Ersparnis (klaro, bei deutschen Texten, eigentlich bei allen lateinisch beeinflussten Sprachen).
Das Ergebnis habe ich in Feld_3 geschrieben.
Und in Feld_4 die Textlänge vorher und nachher.
_zeichen:=Feld_1;
_zeichenlaenge:=@Length(Feld_1);
_za:=@Trim(@ReplaceSubstring(_zeichen;"a";""));
_ze:=@Trim(@ReplaceSubstring(_zeichen;"e";""));
_zi:=@Trim(@ReplaceSubstring(_zeichen;"i";""));
_zo:=@Trim(@ReplaceSubstring(_zeichen;"o";""));
_zu:=@Trim(@ReplaceSubstring(_zeichen;"u";""));
_zaDiff:=@Text(_zeichenlaenge - @Length(_za))+"a";
_zeDiff:=@Text(_zeichenlaenge - @Length(_ze))+"e";
_ziDiff:=@Text(_zeichenlaenge - @Length(_zi))+"i";
_zoDiff:=@Text(_zeichenlaenge - @Length(_zo))+"o";
_zuDiff:=@Text(_zeichenlaenge - @Length(_zu))+"u";
_zuDiffAll:=_zaDiff+_zeDiff+_ziDiff+_zoDiff+_zuDiff;
_zeichenneu:=@Trim(@ReplaceSubstring(_zeichen;"a":"e":"i":"o":"u";""));
_ende:=_zeichenneu + _zuDiffAll;
FIELD Feld_3:=_ende;
FIELD Feld_4:="Länge vorher: " + @Text(_zeichenlaenge) + " - Länge nachher: " + @Text(@Length(_ende));
_void
aus
"Mami, ich will nicht zum Zahnarzrt"
wird
"Mm, ch wll ncht zm Zhnrzt3a0e4i0o1u"
Wie könnte man nun die Vokale aber wieder einfügen, also wieder "entzippen"?
Die Idee wäre ein stinknormaler Platzhalter..klaro, daß die Platzerspranis dann nullinger ist (eine 1 gegen ein A ...), aber für nen Test bzw. die Theorie reicht das erstmal, ein Verfahren zu haben. Später kann man immer noch schauen, daß man echte Platzersparnisverfahren wählt .
Weiß jemand, wie ein echter Zipper arbeitet?