AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Object-Pascal / Delphi-Language Delphi String komprimieren dekomprimieren
Thema durchsuchen
Ansicht
Themen-Optionen

String komprimieren dekomprimieren

Ein Thema von SleepyMaster · begonnen am 16. Mär 2004 · letzter Beitrag vom 17. Mär 2004
Antwort Antwort
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#1

String komprimieren dekomprimieren

  Alt 16. Mär 2004, 16:15
Delphi-Quellcode:
uses
  ZLib;

function CompressString(input:string):string;
var
  InpBuf, OutBuf: Pointer;
  OutBytes: Integer;
begin
  InpBuf := nil;
  OutBuf := nil;
  try
    GetMem(InpBuf, Length(input));
    Move(input[1], InpBuf^, Length(input));
    CompressBuf(InpBuf, Length(input), OutBuf, OutBytes);
    SetLength(result,OutBytes);
    Move(OutBuf^, result[1], OutBytes);
  finally
    if InpBuf <> nil then FreeMem(InpBuf);
    if OutBuf <> nil then FreeMem(OutBuf);
  end;
end;

function DeCompressString(input:string):string;
var
  InpBuf, OutBuf: Pointer;
  OutBytes: Integer;
begin
  InpBuf := nil;
  OutBuf := nil;
  try
    GetMem(InpBuf, Length(input));
    Move(input[1], InpBuf^, Length(input));
    DeCompressBuf(InpBuf, Length(input),0,OutBuf, OutBytes);
    SetLength(result,OutBytes);
    Move(OutBuf^, result[1], OutBytes);
  finally
    if InpBuf <> nil then FreeMem(InpBuf);
    if OutBuf <> nil then FreeMem(OutBuf);
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von CenBells
CenBells

Registriert seit: 30. Mär 2003
Ort: Kiel urspr. Lübeck
176 Beiträge
 
Delphi 7 Professional
 
#2

Frage zu String komprimieren dekomprimieren

  Alt 16. Mär 2004, 19:39
hallo,

ich habe dazu noch eine frage.
Ich habe nun einen MemoryStream, in dem prinzipiell auch nur text steht.
Ich dachte dann, hmm, schreibe ich den stream in einen string.
Das klappt leider nicht,

hier der code, den ich verwende
Delphi-Quellcode:
        LStream.Position := 0;
        SetLength(LString, LStream.Size);
        LStream.Write(LString, LStream.Size);// hier gibt es den fehler Zugriffsverletzung...

        LCompressed := CompressString(LString);

        LStream.Clear;
Weiß wer, was ich falsch mache und kann mich korrigieren?

Gruß
Ken
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#3

Re: String komprimieren dekomprimieren

  Alt 17. Mär 2004, 13:58
Delphi-Quellcode:
        LStream.Position := 0;
        SetLength(LString, LStream.Size);
        LStream.Write(LString[1], LStream.Size);// hier gibt es den fehler Zugriffsverletzung...

        LCompressed := CompressString(LString);

        LStream.Clear;
Damit söllte es gehen!
  Mit Zitat antworten Zitat
Antwort Antwort

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz