Vor-/Nachnamen "komprimieren"



  • Hallo, ich möchte Vor-/Nachnamen "komprimieren".
    Deutsche Namen bestehen ja nur aus 30 verschiedenen Zeichen.
    So hab ich mir gedacht die Zeichen im 6 Bit-Packete (erlauben 32 Zeichen) zu packen und hintereinander in einen String zu speichern.
    Nur wie kann man das machen?



  • Empfinde ich nicht für sehr sinnvoll, aber wenn es unbedingt sein muss geht das nicht so einfach.

    Das Problem ist, dass praktisch überall das Byte (8 Bit) nunmal die kleinste Addressierbare Einheit ist. Jetzt kannst du aber hingehen und schauen, wie lange der Name ist und die benötigten Bits berechnen und mit Bit Fummeleien arbeiten, um die restlichen 2 Bit eines Zeichen als Informationshalter für das nächste Zeichen bereitzustellen. Das sollte möglich sein.

    Aber wie gesagt. Für sehr sinnvoll halte ich das nicht..



  • vielleicht hilft das bei deinen weiteren recherchen.
    http://base64.sourceforge.net/



  • volkard schrieb:

    vielleicht hilft das bei deinen weiteren recherchen.
    http://base64.sourceforge.net/

    Das System ist aber ein anderes: BASE64 packt 3 8-Bit in 4 6-Bit Packete.
    Bei der Namenskomprimierung werden die 1. 2 Bits ignoriert.



  • tomgk schrieb:

    Hallo, ich möchte Vor-/Nachnamen "komprimieren".
    Deutsche Namen bestehen ja nur aus 30 verschiedenen Zeichen.

    Mit den normalen Buchstaben a-z, mit ä, ö, ü, ß und mit dem Bindestrich (bei Doppelnamen) komm ich schon auf 31 Zeichen.

    Ich halte das für keine gute Idee, die erlaubten Zeichen so einzuschränken. Entweder nur ASCII-Zeichen oder alle Zeichen erlauben, aber irgendwas dazwischen ist so unvorhersehbar.



  • Christoph schrieb:

    Ich halte das für keine gute Idee, die erlaubten Zeichen so einzuschränken. Entweder nur ASCII-Zeichen oder alle Zeichen erlauben, aber irgendwas dazwischen ist so unvorhersehbar.

    Wieseo unvorhersehbar?
    Deutsche Namen bestehen doch nur aus diesen Buchstaben.



  • tomgk schrieb:

    Christoph schrieb:

    Ich halte das für keine gute Idee, die erlaubten Zeichen so einzuschränken. Entweder nur ASCII-Zeichen oder alle Zeichen erlauben, aber irgendwas dazwischen ist so unvorhersehbar.

    Wieseo unvorhersehbar?
    Deutsche Namen bestehen doch nur aus diesen Buchstaben.

    Nicht jeder deutsche Staatsbürger hat einen deutschen Namen.

    Mit unvorhersehbar meine ich: Es ist üblich, dass Programme entweder ausschließlich ASCII-Zeichen akzeptieren oder eben alle Unicode-Zeichen [1]. Aber irgendeine Zeichen-Menge dazwischen ist bei heutigen Programmen ziemlich unüblich, deswegen: unvorhersehbar.

    [1] Ok, es gibt noch lokale Codepages, ISO-8859-1 und ähnliches. Aber auch die enthalten mehr als a-z, Umlaute und Bindestrich.



  • Christoph schrieb:

    Nicht jeder deutsche Staatsbürger hat einen deutschen Namen.

    Mit unvorhersehbar meine ich: Es ist üblich, dass Programme entweder ausschließlich ASCII-Zeichen akzeptieren oder eben alle Unicode-Zeichen [1]. Aber irgendeine Zeichen-Menge dazwischen ist bei heutigen Programmen ziemlich unüblich, deswegen: unvorhersehbar.

    Die Namen sind für eine Namen-DB komprimiert, die von einem Zufallsnamen-Genarator verwendet werden sollte.
    Da dort keine Namen hinzugefügt werden ist das kein Problem.



  • hab einen anderen vorschlag, die namen zu komprimieren:
    du nimmst einfach eine sortierte liste aller deutschen vornamen und der index in die liste ist der gepackte name.
    http://de.wikipedia.org/wiki/Kategorie:Männlicher_Vorname
    da müßten eigentlich 20 bit reichen. ist das nicht super gepackt?



  • Eine moderne Kompressionsbibliothek kriegt die Daten zuverlässig, schnell und deutlich besser (de-)komprimiert als du. Außerdem ist es bei weitem nicht so zeitaufwendig 😉



  • Wo find ich so eine Kompressionsbibliothek?





  • für namen eignet sich wohl am besten ein trie

    http://en.wikipedia.org/wiki/Trie



  • tomgk schrieb:

    Wo find ich so eine Kompressionsbibliothek?

    Hier: http://www.7-zip.org/sdk.html



  • So langsam frage ich mich ob das Komprimieren Sinn macht, bei der Arbeit...



  • Ich glaube du hast den Knackpunkt erfasst ... Um wieviel Byte handelt es sich denn insgesammt?



  • knivil schrieb:

    Ich glaube du hast den Knackpunkt erfasst

    👍


Log in to reply