Entwickler-Ecke
Sonstiges (Delphi) - einfache kompremierung
Snoop007 - Mo 25.11.02 14:09
Titel: einfache kompremierung
hi,
ich arbeite viel mit txt dateien
ich möchte nicht das benutzer in diese daten reingucken können
ich habe eine verschlüsselung geschrieben (hex) aber leider wird die datei dadurch sehr gross hat einer eine einfache kompremierung zur hand ?
danke !
Udontknow - Mo 25.11.02 15:53
Hi!
Ich verstehe zwar nicht, wieso durch eine "Hex-Verschlüsselung" (denke mal du meinst einfache XOR-Verschlüsselung) deine Dateien grösser werden, aber in Delphi ist die Unit ZLib dabei, dort findest du die Klassen TCompressionStream und TDeCompressionStream, die du dafür benutzen kannst.
Cu, :)
Udontknow
Snoop007 - Mo 25.11.02 16:22
:oops: ich habe jeden buchstaben in hex umgewandelt
danke für den hinweis der unit !
hast du ein bps auf lager :)
bin gerade etwas kraftlos mich da rein zu denken
Anonymous - Mo 25.11.02 16:22
Alles klein ist noch Ok, aber kein Punkt und Komma?
Hex Wert ist vier Bit groß. Wie speicherst du das ab? Als ein Byte? Dann sind die ersten 4 Bit des Bytes leer. Pack also Zwei Bytes zu einem Byte zusammen und schon ist alles nur noch halb so groß.
Udontknow - Mo 25.11.02 16:45
Hier die Prozedur fürs Komprimieren (ohne Gewähr). Das Ableiten der Dekomprimierungsprozedur dürfte nicht schwer fallen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| procedure CompressFile(FileName:String); var Stream,DestStream:TMemoryStream; var CompressionStream:TCompressionStream; begin Stream:=TMemoryStream.Create; try Stream.LoadFromFile(FileName); DestStream:=TMemoryStream.Create; try //Kompressionsstream erstellen, komprimierte Daten landen in DestStream CompressionStream:=TCompressionStream.Create(clMax, DestStream); try Stream.Position:=0; //Inhalt des Streams in CompressionStream einlesen) CompressionStream.Write(Stream.Memory^,SizeOf(Stream)); finally CompressionStream.Free; end; //Komprimierte Daten speichern DestStream.SaveToFile(Filename); finally DestStream.Free; end; finally Stream.Free; end; end; |
Cu,
Udontknow
Snoop007 - Mo 25.11.02 17:10
danke ! :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!