Autor Beitrag
Snoop007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: Mo 25.11.02 14:09 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: 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 user defined image
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 25.11.02 16:45 
Hier die Prozedur fürs Komprimieren (ohne Gewähr). Das Ableiten der Dekomprimierungsprozedur dürfte nicht schwer fallen.

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: Mo 25.11.02 17:10 
danke ! :D