Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi string komprimieren (https://www.delphipraxis.net/54689-string-komprimieren.html)

yankee 10. Okt 2005 05:43


string komprimieren
 
Ich beziehe mich auf folgenden Eintrag aus der Codelib:

String komprimieren dekomprimieren
Ich bekomme bei der Dekomprission in dieser Zeile:
Delphi-Quellcode:
DeCompressBuf(InpBuf, Length(input),0,OutBuf, OutBytes);
Immer eine exeption 'invalid Pointer Operation'. Ich habe einfach nur ein form mit 2 Memos und zwei Buttons, die den Text aus der einen Memo in der anderen komprimiert ausgeben und wieder zurück. Dabei kann doch eigentlich nichts schief gehen.
Was mir aufgefallen ist, ist dass out eigentlich das gleiche wie var ist, nur dass es einen Pointer sein muss (sagt die DelphiHilfe). Aber OutBytes (was nach der CodeCompletion zu Urteilen ein out ist) ist schließlich ein Integer und kein Pointer. Ich habe mal probiert ein @ davor zu schreiben, aber dann kompiliert Delphi erst garnicht. Also woran kann das liegen?? Hat irgendwer Erfahrung mit dieser function?

marabu 10. Okt 2005 09:32

Re: string komprimieren
 
Zitat:

Zitat von yankee
Ich habe einfach nur ein form mit 2 Memos und zwei Buttons, die den Text aus der einen Memo in der anderen komprimiert ausgeben und wieder zurück. Dabei kann doch eigentlich nichts schief gehen.

Warum denn nicht? Abhängig davon, wie du die strings hin und her kopierst, werden sie beim ersten auftretenden #0 abgeschnitten. Es gibt spezielle Kompressionsverfahren für strings, aber einen string als Zwischenpuffer für eine statistische Kompression würde ich nicht verwenden. Nimm einen normalen buffer, dann kann wirklich nichts schief gehen.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 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