Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Rob Green am 24.03.03 - 12:18:04

Titel: ein "Zipper" für Texte..und entzippen?
Beitrag von: Rob Green am 24.03.03 - 12:18:04
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?
Titel: Re:ein "Zipper" für Texte..und entzippen?
Beitrag von: Rob Green am 24.03.03 - 12:31:16
hab was im I-Net zum Huffman Kodierungsverfahren, eine ganz simple Erklärung...Aussage:
"Beim Huffman-Verfahren werden häufig vorkommende Zeichen mit wenigen Bits, selten vorkommende Zeichen dafür mit mehr Bits codiert. Dies spart offenkundig Volumen gegenüber der ASCII-Codierung."


http://www.dbg.rt.bw.schule.de/lehrer/ritters/info/kompr/huffman.htm#inhalt
Titel: Re:ein "Zipper" für Texte..und entzippen?
Beitrag von: Performance am 24.03.03 - 13:01:59
stimmt - der Huffman Algorithmus ist am verbreitesten, aber die adaptive Huffman Methode hat sich durchgesetzt

- eine einfache Codierung ist die LRE - Lauflängencodierung

- daneben gibt es noch das LZW Verfahren oder auch BWT Algorithmus
- für den Packer (von unix .tar) wird der LZW Algorithmus verwendet


cu
Titel: Re:ein "Zipper" für Texte..und entzippen?
Beitrag von: Rob Green am 24.03.03 - 13:03:11
danke für die Stichwörter (äh..Fremdwörter  ;D), werde mich mal auf die Suche bei Google machen..

*wenn jetzt jemand nach dem Grund fragt...kA...reine Neugier*