Autor |
Beitrag |
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mi 23.07.03 10:57
Hallo,
ich suche eine Möglichkeit Textinformationen zu komprimieren und möchte, da ich das ergebnis in einer XML-Datei unterbringen will, auch nur Text rausbekommen, also keine Steuerzeichen.
Eine weiter zusatzanforderung, ist, dass das ganze in meine EXE einkompiliert werden muss, mit fertigen DLL-lösungen kann ich nichts anfangen.
Kennt jemand effektive Algorithmen und informationsquellen zu diesen, die mir helfen können?
Gruß
Klabautermann
|
|
Eggi
      
Beiträge: 33
Win 2000, Win XP
D7 Prof
|
Verfasst: Mi 23.07.03 11:23
Hallo,
für Textinhalte bietet sich eine der Lempel-Ziv-Kodierungstechniken an.
Hier findest du eine ganz brauchbare Beschreibung der verschiedenen Techniken.
Eggi
|
|
CenBells
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: Mi 23.07.03 11:30
hallo, du kannst auch die komponenten der DEC (Delphi Encryption Compendium) verwenden. Dort gibt es dann ne methode, das ganze als printable zu erhalten...
Gruß
Ken
_________________ Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
|
|
Klabautermann 
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mi 23.07.03 13:15
Hallo,
CenBells hat folgendes geschrieben: | hallo, du kannst auch die komponenten der DEC (Delphi Encryption Compendium) verwenden. Dort gibt es dann ne methode, das ganze als printable zu erhalten... |
aber handelt es sich hierbei nicht um reine Verschlüsselungssysteme? Mit geht es insbesondere um die Komplrimierung, also die reduktuion der größe. In der XML-Datei sollen ein paar Informationen über den längeren Text-Teil als "Klartext" enthalten sein und der eigentliche Text in Komprimierter form.
Gruß
Klabautermann
|
|
Klabautermann 
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mi 23.07.03 13:29
Hallo,
Eggi hat folgendes geschrieben: | für Textinhalte bietet sich eine der Lempel-Ziv-Kodierungstechniken an. |
auf dem ersten Blick sieht es gut aus, auf dem zweiten Blick muss ich aber noch eine weitere Anforderung an den Algorithmus stellen.
Denn für die Lempel-Ziv-Algorithmen gild:
Oliver Schmid hat folgendes geschrieben: | Abschließend bleibt anzumerken, daß der LZW-Algorithmus keine frei verfügbare Software ist. |
Da das ganze in einem Freeware-Programm zum tragen kommen soll, muss es auch ncoh frei nutzbar sein.
Danke trotzdem
Klabautermann
|
|
UC-Chewie
      
Beiträge: 531
WinXP
D5 Ent
|
Verfasst: Mi 23.07.03 13:30
Du könntest den Text ganz normal per ZIP-Kompression komprimieren, meinetwegen auch noch irgendwie verschlüsseln und dann abspeichern, indem du Byte für Byte durch diese Daten gehst und die Hexadezimaldarstellung als Text einträgst.
Beispiel: Aus einem 5 Byte großen Datenblock mit dem Inhalt $3F4532F431 (hexadezimal) wird der String "3F4532F431". Bevor die Daten wieder entschlüsselt werden, wird aus dem String wieder der Datenblock erstellt.
_________________ Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
|
|
Klabautermann 
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mi 23.07.03 13:33
Hallo,
UC-Chewie hat folgendes geschrieben: | Du könntest den Text ganz normal per ZIP-Kompression komprimieren, meinetwegen auch noch irgendwie verschlüsseln und dann abspeichern, indem du Byte für Byte durch diese Daten gehst und die Hexadezimaldarstellung als Text einträgst. |
an soetwas habe ich auch schon gedacht (nur mit CAB, da dies in Widows ab 98 enthalten ist), allerdins wird duch die Hexadezimale darstellung die Größe der Daten wieder verdoppelt. Mit etwas pech liegt die Kompressionsrate aber unter 50% und somit habe ich danach sogar mehr Daten als vorher  .
Gruß
Klabautermann
|
|
Eggi
      
Beiträge: 33
Win 2000, Win XP
D7 Prof
|
Verfasst: Do 24.07.03 09:29
Klabautermann hat folgendes geschrieben: |
Da das ganze in einem Freeware-Programm zum tragen kommen soll, muss es auch ncoh frei nutzbar sein.
|
Du musst ja auch nicht den LZW-Algorithmus nehmen. Es gibt ja eine Menge weitere Algos die frei verfügbar sind. Ich hab extra mal in die Spezifikation des Png-Formats geschaut und folgendes gefunden:
PNG (Portable Network Graphics) Specification hat folgendes geschrieben: |
5. Deflate/Inflate Compression
PNG compression method 0 (the only compression method presently
defined for PNG) specifies deflate/inflate compression with a 32K
sliding window. Deflate compression is an LZ77 derivative used in
zip, gzip, pkzip and related programs. Extensive research has been
done supporting its patent-free status. Portable C implementations
are freely available. |
Eggi
|
|