AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wie ZLib weitgehend unabhängig von classes.pas ?

Wie ZLib weitgehend unabhängig von classes.pas ?

Ein Thema von stho · begonnen am 30. Jul 2010 · letzter Beitrag vom 2. Aug 2010
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

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

AW: Wie ZLib weitgehend unabhängig von classes.pas ?

  Alt 2. Aug 2010, 12:43
Ist es sdenn wirklich so schwer?

- erstmal alles kopieren > ZLib.pas und die ZLib/*.obj
(und die ZLib.pas vielleicht noch umbennenn)
- dann die unerwünschten Units rauslöschen (SysUtils und Classes)
- und nun alles löschen, welches nicht mehr unterstützt wird, also alles was mit Streams zu tun hat

- TBytes nicht löschen, sondern die Deklaration kopieren
TBytes = array of Byte;
- und die beiden Exceptions auch noch ersetzen
z.B. durch System.Error(reRangeError);

und schon läuft es
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
stho

Registriert seit: 16. Sep 2009
Ort: 127.0.0.1
288 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Wie ZLib weitgehend unabhängig von classes.pas ?

  Alt 2. Aug 2010, 14:02
Ja, leider IST es so schwer
Ich habe mich schon dran versucht alles unnötige raus zu löschen, jedoch erkennt er TFileStream in benutzung der ZLib nicht mehr als einen Nach-Nachfolger von TStream an >___<
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#3

AW: Wie ZLib weitgehend unabhängig von classes.pas ?

  Alt 2. Aug 2010, 14:10
Na und dann schreibt man sich mit Hilfe der Classes.pas eine kleine TStream-Klasse.
Ist eigentlich alles nur eine Geduld und Fleiss Frage aber nicht wirklich schwer zu
realisieren.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Wie ZLib weitgehend unabhängig von classes.pas ?

  Alt 2. Aug 2010, 14:24
Ja, leider IST es so schwer
Ich sagte doch ... löschen ... eine eigene "kompatible" TStream-Klasse zu schreiben geht halt nicht.

Oder du mußt doch die Classes nutzen.
Angehängte Dateien
Dateityp: pas ZLibNoStream.pas (16,3 KB, 14x aufgerufen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Aug 2010 um 14:30 Uhr)
  Mit Zitat antworten Zitat
stho

Registriert seit: 16. Sep 2009
Ort: 127.0.0.1
288 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Wie ZLib weitgehend unabhängig von classes.pas ?

  Alt 2. Aug 2010, 15:35
naja, die classes will ich ja nicht nutzen...
danke für die .pas datei von dir die du angehangen hast
werde mir die in den kommenden 1-2 tagen mal anschauen...
aber so auf den ersten blick sehen einige funktionen redefiniert aus.
Naja, aber vielen dank schonmal dafür...
sobald ich eine passende lösung gefunden habe (vielleicht doch eine kleine TStream-klasse?) werde ich sie hier posten...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Wie ZLib weitgehend unabhängig von classes.pas ?

  Alt 2. Aug 2010, 15:46
vielleicht doch eine kleine TStream-klasse?
Theoretisch, von den Methoden und Feldern her, könnte man schon etwas gleich aufbauen.

Aber es wird und kann niemals kompatibel zu anderen TStream-Nachfahren sein, da es laut RTTI immer einen unterschiedlichen Ursprung haben wird.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#7

AW: Wie ZLib weitgehend unabhängig von classes.pas ?

  Alt 2. Aug 2010, 20:25
Ich habe mal in die ZLib geguckt, eigentlich braucht es die Streams nicht.
Man kann doch über Pointer die Daten Zuweisen.


Delphi-Quellcode:
unit
  uZippozip;

interface

const
  ZIPDLL = 'Zippozip.dll';

type
  TZAlloc = function (opaque: Pointer; items, size: Integer): Pointer;
  TZFree = procedure (opaque, block: Pointer);
  TOnProcess = procedure(percent: integer); stdcall;

  TZCompressionLevel = (
    zcNone,
    zcFastest,
    zcDefault,
    zcMax,
    zcLevel1,
    zcLevel2,
    zcLevel3,
    zcLevel4,
    zcLevel5,
    zcLevel6,
    zcLevel7,
    zcLevel8,
    zcLevel9
  );

procedure ZCompress(const inBuffer: Pointer; inSize: Integer;
  out outBuffer: Pointer; out outSize: Integer;
  level: TZCompressionLevel = zcDefault); stdcall;
  external ZIPDLL;

procedure ZDecompress(const inBuffer: Pointer; inSize: Integer;
  out outBuffer: Pointer; out outSize: Integer; outEstimate: Integer = 0);
  stdcall; external ZIPDLL;

implementation

end.
Angehängte Dateien
Dateityp: zip Zippozip.dll.zip (32,9 KB, 8x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  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 18:03 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