AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi RtlCompressBuffer alternative gesucht!

RtlCompressBuffer alternative gesucht!

Ein Thema von Fukiszo · begonnen am 17. Jan 2018 · letzter Beitrag vom 18. Jan 2018
Antwort Antwort
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#1

AW: RtlCompressBuffer alternative gesucht!

  Alt 17. Jan 2018, 13:13
Wieso ist die undokumentiert?

https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: RtlCompressBuffer alternative gesucht!

  Alt 17. Jan 2018, 13:17
Und was steht dort:

Version
Available starting in Windows XP.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#3

AW: RtlCompressBuffer alternative gesucht!

  Alt 17. Jan 2018, 13:25
Und was steht dort:

Version
Available starting in Windows XP.
Ich verstehe euch heute nicht Ich glaub ich brauch mehr schlaf.

Zitat:
Jetzt frag ich mich, weil ja RtlCompressBuffer eine undokumentierte und möglicherweise nicht in jeder windows version zur verfügung stehende funktion ist
Also Funktion ist dokumentiert!

Zitat:
...mein produkt muss leider auch mit XP funktionieren...
Funktion ist in XP verfügbar.

Ist das nicht das, was Fukiszo wollte?
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: RtlCompressBuffer alternative gesucht!

  Alt 17. Jan 2018, 13:29
Ich verstehe euch heute nicht Ich glaub ich brauch mehr schlaf.

...

Ist das nicht das, was Fukiszo wollte?
Genau. War ja auch für Fukiszo gedacht.
Du brauchst wirklich mehr schlaf
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#5

AW: RtlCompressBuffer alternative gesucht!

  Alt 17. Jan 2018, 13:37
Er hatte ja selber behauptet es sei nicht dokumentiert.

OK, abgesehn, dass diese Funktion eigentlich für das Windows Driver Kit gedacht ist, also z.B. für die Verwendung in Treibern und nicht direkt für User-Mode-Programme, ist sonst alles OK.

Natürlich könnte auch jemand noch fragen warum es unbedingt diese Komprimierungsfunktion sein muß und nicht Eine der vielen Anderen, oder gar die ZLib, welche direkt im Delphi vorhanden ist, und das schon seit mehreren Jahrzehnten.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Fukiszo
(Gast)

n/a Beiträge
 
#6

AW: RtlCompressBuffer alternative gesucht!

  Alt 17. Jan 2018, 13:53
mit undokumentiert meinte ich, diese funktion ist nicht in delphi (version 7) nativ vorhanden und kennt auch keine hilfestellung zu diesem thema.
meine version der Win32.hlp datei schweigt sich darüber auch aus.
da die überschrift "alternative" heisst hoffte ich es gibt noch mehr funktionen die ab WindowsXP per WinAPI so etwas machen könnten und ich lediglich zu doof war sie zu entdecken.
zLib apLib ucl flexcompress 7zip und der gleichen wollte ich nicht wirklich einbinden, wobei mir zlib noch am liebsten ist wegen geschwindigkeit.

Vielen Dank für Euren feedback!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#7

AW: RtlCompressBuffer alternative gesucht!

  Alt 17. Jan 2018, 14:17
Das kann Delphi 7 auch garnicht kennen.
1995 Delphi 7
2001 Windows XP

Außerdem sind nur ein paar WinAPIs im Delphi enthalten. Niemand hatte Lust sämtliche APIs nach Pascal zu übersetzen,
also gibt es nur die "Wichtigsten", vorallem Win32-API, GDI, COM/ActiveX usw.
Das WinDDK in Pascal gibt es aber von einigen Drittanbietern.

Wenn man mit C++ oder C++Builder arbeitet, dann kann man natürlich auch direkt gegen die API-Header des WinDDK kompilieren und braucht keine Headerübersetzungen zu suchen oder selber anzufertigen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Fukiszo
(Gast)

n/a Beiträge
 
#8

AW: RtlCompressBuffer alternative gesucht!

  Alt 17. Jan 2018, 16:44
...und nicht Eine der vielen Anderen...
genau das versuch ich ja herauszufinden (siehe Titel -> "alternative")
wenn du mir bitte mit Api's weiterhelfen könntest, das wäre super!
"Eine der vielen" klingt klasse, bitte unterweise mich.

sollte halt eine funktion sein die XP versteht und auch aktuelle OS.

wenn da so viele vorhanden sind, könnt ich ja mein produkt auf verschiedene engines umrüsten.

himitsu besten dank schonmal!

alle anderen können sich gern mit-einklinken und mir weitere buffercompressions funktionen vorstellen,
je mehr je besser, haltet euch nicht zurück, egal ob code ur-alt ist oder erst in XE10 vorgestellt wurde.
Für mich gibt es kein "richtig/falsch" in diesem zusammenhang solange XP damit klar kommt bin ich total happy!

Es grüßt
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: RtlCompressBuffer alternative gesucht!

  Alt 17. Jan 2018, 17:14
Wenn du einfach nur "irgendwas komprimieren" möchtest hat mir persönlich immer die mitgelieferte Unit System.Zip gereicht. Handelsübliche ZIP-Kompression in Dateien oder in den Speicher, Dateien rein und raus, alles ganz einfach.

Beispiel:

Delphi-Quellcode:
interface uses
   System.Classes,
   System.SysUtils,
   System.Zip,
   System.IoUtils;

procedure compressStuff();
const
   exampleData: TBytes = [1,2,3];
var
   inputStream: TStream;
   zipFile: TZipFile;
   outputStream: TBytesStream;
begin
   inputStream := nil; zipFile := nil; outputStream := nil;
   try
      inputStream := TBytesStream.Create(exampleData);
      outputStream := TBytesStream.Create();

      zipFile := TZipFile.Create();
      zipFile.Open(outputStream, TZipMode.zmWrite);
      zipFile.Add(inputStream, 'compressedInput.dat');

      TFile.WriteAllBytes('x:\myZipfile.zip', outputStream.Bytes);
   finally
      inputStream.Free(); zipFile.Free(); outputStream.Free();
   end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#10

AW: RtlCompressBuffer alternative gesucht!

  Alt 17. Jan 2018, 17:20
Sonst kenn ich keine API im Windows.

ZLib ist im Delphi enthalten (gleichnamige Unit).
Das ist eine Wörterbuchkomprimierung mit anschließender Entropiekodierung. (wird z.B. in ZIP- und GZ/GZIP-Dateien verwendet oder bei der komprimierten Übertragung von HTTP-Servern)
http://docwiki.embarcadero.com/Libra...en/System.ZLib
https://de.wikipedia.org/wiki/Zlib

Hier im Forum suchenZipMaster / Bei Google suchenZipMaster
Bei Google suchenAbbrevia
ZipForge, FlexCompress, KaZip, UnRAR, SynZip, ....
und sogar in der JCL verstecken sich einige Komprimierungsfunktionen.

TZipFile ist neu und gibt es in Delphi 7 noch nicht, aber nutzt ja intern auch wieder die ZLib.
Wobei ZipFile natürlich nicht nur die Kompimierung, sondern auch das ganze Management/Overhead zur Behandlung von mehreren verschlüsselten Datenstreams in einer ZIP-Datei hat.

7-Zip ist offen. Das kann als DLL genutzt oder via vorkompilierter OBJ direkt in die EXE gelinkt werden.
(OBJ: siehe ZLip, TJPEGImage, TRegEx ... das kommt alles von Fremden und wird im Delphi nur wiederverwendet)
www.7-zip.de/sdk.html

LeseTipp: http://www.delphipraxis.net/152933-k...-geht-das.html
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Jan 2018 um 17:24 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz