Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Prism Verpackte Dateien (https://www.delphipraxis.net/76352-verpackte-dateien.html)

daredd 3. Sep 2006 00:37


Verpackte Dateien
 
:mrgreen: Tag leute!!!


Ich habe ein Programm das mit Databse-Dateien arbeitne (*.gdb).
Kann ich irgendwie diese Dateien in ein password geschütztes Rar, zip, oder cab extrahieren??? Aber so das das Programm trotzdem mit Ihnen arbeiten kann.

Sprich mein programm muss verpackte dateien öffnen können. Wie es offt auch bei Spielen gemacht wir.

Wie muss ich das dann in delphi schreiben damit er die dateien aus der Verpackung nimmt????



danke
:mrgreen:

3_of_8 3. Sep 2006 00:42

Re: Verpackte Dateien
 
GDB ist meines Wissens eine Interbase-Datenbankdatei. Ich habe noch nie mit Datenbanken unter Delphi gearbeitet, erst recht nicht unter .NET, aber ich denke mal, dass es auch da irgendwo Datenbankkomponenten gibt, eventuell sogar schon mit Delphi ausgeliefert. Damit dürftest du das öffnen können.

fwsp 3. Sep 2006 01:00

Re: Verpackte Dateien
 
To 3_of_8:
Nicht genau gelesen? :gruebel:

Sein Problem ist nicht, dass er die Datenbank nicht öffnen kann, sondern dass er sie verschlüsseln möchte.

To Thread-Ersteller:
Kannst du vielleicht genau sagen was du beabsichtigst, dann könnte man dich besser beraten.

3_of_8 3. Sep 2006 01:05

Re: Verpackte Dateien
 
Ich hab bei dem Post nicht allzu viel verstanden. Er will Daten aus einer Verpackung tun oder so...

Naja ich würde die Dinger alle hintereinander in nen Filestream schmeißen, jeweils davor einen Integer mit der Größe des nächsten Datenblocks und den Filestream danach mit AES verschlüsseln. Wenn er es noch komprimieren will, kann er dafür die zlib hernehmen.

fwsp 3. Sep 2006 01:09

Re: Verpackte Dateien
 
ich erinnere mich an datembanken nur aus dem info-unterricht... Aber: haben (gute?) datenbanken (BDMS) nicht eigene Routinen für den Zugriff, auch mit Nutzern, Rechten usw.?

daredd 3. Sep 2006 01:55

Re: Verpackte Dateien
 
:wall: Also sorry aber vielleicht wurde meine frage nicht richtig verstanden.

Die datenbank ansich ist egal, die kann ich auch selber ertellen. mir gehts darum die datenbank (oder egal welche datei) in eine zip, rar, oder cab zu packen.
Und das programm soll dan praktisch selber die zip, rar, cab selber öffnen und mit der darin vorhandenen datenabnk arbeiten.

Wieso das ganze...... weil z.B. bei einer rar-datei kann ich ein pass wort erstellen und man kann die datein nicht so ohne weiteres rauskopieren, trotzdem kann das programm mit den Dateien in der rar-Datei arbeiten



:coder2:

daredd 3. Sep 2006 02:02

Re: Verpackte Dateien
 
Um mal zu zeigen was ich genau meine:

Delphi-Quellcode:
procedure TDM.ConnectTuneDatabase;
begin
     if ConnectToDatabase(dbTune, SlashSep(BasePath, 'data\d1.gdb')) then begin
        OpenTuneTables(True);
     end;
end;

so öffnet das programm zur zeit mein database.
ich möchte aber das es aber anders geöffnet wird, nähmlich so:

Delphi-Quellcode:
procedure TDM.ConnectTuneDatabase;
begin
     if ConnectToDatabase(dbTune, SlashSep(BasePath, 'data\database.zip\d1.gdb')) then begin
        OpenTuneTables(True);
     end;
end;
zum beispiel.

Wie mach ich das in Delphi, was muss ich coden damit er eine verpackte datei ausliesst???

[edit=Christian Seehase]Delphi-Tags korrgiert. Mfg, Christian Seehase[/edit]

Prototypjack 3. Sep 2006 02:27

Re: Verpackte Dateien
 
Moin!

Du willst also Daten(Im Moment völlig egal in welcher Form) packen/entpacken? Ich hoffe wnigstens ich verstehe dich richtig :mrgreen:
So wie du dir das vorstellst(File.zip\Hallo.dat) wird es nicht gehen. Zumindest kenne ich keinen Weg. Aber mal zum Packen:
Rar-Archive: Sind lizenziert(afair) also fallen diese weg.
CAB(inet) Archive: Sind zwar ganz toll und Windows liefert eine api zum entpacken mit aber diese Dinger sind sehr böse zu handlen.
Was du allerdings benutzen kannst sind .zip Archive. Das sollte mit der BZip Variante funktionieren, dazu gibt es auch schon entsprechende Libs/Komponenten(zb. bei Torry.net).
Zurück zum handling: Wie gesagt ein solch direkter Zugriff wird nicht möglich sein. Was du aber tun kannst ist die Datei temporär in den Ram zu laden und von dort aus(Soweit die DB das kann, ansonsten lokal speichern) mit der DB verarbeiten.

Ich hoffe ich habe mich bei dieser nächtlichen Uhrzeit gut ausgedrückt und keinen Blödsinn geredet ;)

**Edit: Mist, ich merke gerade ich bin hier ja bei .NET. :mrgreen:
**Da könnte es mit den Libs/Komponenten Probleme geben, aber dazu sollte sich auch eine Lösung finden lassen.
**Der restliche Teil sollte aber dennoch zutreffen :wink:

Gruß,
Max

daredd 3. Sep 2006 02:31

Re: Verpackte Dateien
 
cool endlich mal was sinnvolleres, ich werde mal bei torry.net vorbei schauen, vielleicht entdecke ich da was passendes.

aber wenn jemanden noch was einfällt oder einer sogar schon ein code hat für mein problem, imma her damit :cyclops:

HPW 3. Sep 2006 07:30

Re: Verpackte Dateien
 
VCLzip wäre hier geeignet.

http://vclzip.bizland.com/

Wenn die Datenbank Lesen von einem Stream unterstützt, kann man mit VCLzip in einen Stream entpacken.

3_of_8 3. Sep 2006 10:45

Re: Verpackte Dateien
 
VCLzip klingt sehr nach VCL. Und das hier ist ein .NET Thema.

Bernhard Geyer 3. Sep 2006 21:03

Re: Verpackte Dateien
 
Was das Ziel dieses Verpackens? Sicherheit (Passwortschutz) oder Dateigrößen.

Falls es Dateigrößen sind so entpacke die Dateien in Temp-Verzeichnis und lass das Zielprogramm mit dieser Tempdatei arbeiten.

Falls es sicherheit ist gibt es mehrere Wege:

- Die Zielanwendung kann selbständig die Verschlüsselung durchführen. Diverse Datenbanken (z.B. ADS Local Server) können dies. Aufgrund von Performanceaspekten werden oft Indexe nicht verschlüsselt.

- Du kannst die Zielanwendung mit Stream oder mit Dateihandels dazu bringen ihre Dateien zu öffnen. Hierbei gibt es diverse Komponenten die eine Verschlüsselung bieten und die TStream-Objekt bereitstellen

- Du erstellst einen eigene Dateisystemtreiber und bei Zugriffen von der Zielanwendung auf dieses Dateisystem kannst Du z.B. per Callbacks diese Zugriffen Zugriff erlauben/freischalten.

daredd 3. Sep 2006 21:10

Re: Verpackte Dateien
 
Ja es geht mir mehr darum die dateien zu sichern. Ich habe angst das einer meine datenbank nimmt und einfach zu sich kopieren kann, und dann sein programm damit läuft.

Also im prinzip würde ein einfacher kopierschutz reichen aber wie ich das machen soll weiss ich leider noch nicht so genau.

Bernhard Geyer 3. Sep 2006 21:51

Re: Verpackte Dateien
 
Damit würde dir also sowas wie vom ADS Local Server genügen, oder?

Falls ja mußt du "nur" dafür sorgen das das Passwort gut versteckt in der Exe abgelegt ist.

daredd 3. Sep 2006 22:52

Re: Verpackte Dateien
 
Ok und wie mach ich mir so ein ADS Local Server, ich davon keine ahnung. Finde ich irgendwo ein beispiel??

Michael Habbe 3. Sep 2006 23:20

Re: Verpackte Dateien
 
Zitat:

Zitat von daredd
Ok und wie mach ich mir so ein ADS Local Server, ich davon keine ahnung. Finde ich irgendwo ein beispiel??

ADS ist der Advantage Database Server, Local Server ist die Zugriffsart, hier werden nur ein paar DLLs für gebraucht. Demos gibts bei der URL auch. Vor allem ist der ADS Local Server kostenlos.


Was für Daten willst Du überhaupt schützen?

Bernhard Geyer 4. Sep 2006 07:45

Re: Verpackte Dateien
 
Zitat:

Zitat von Michael Habbe
Vor allem ist der ADS Local Server kostenlos.

Der ADS Local Server ist nicht kostenlos wenn er in einem Client/Server-System wie ASP(.NET) oder in einer DCOM/COM+-Komponente verwendet wird. Auch erfordert die Verwendung in einer Remote Desktop-Session auch eine Server-Lizenz. Nur mal so nebenbei bemerkt.

Michael Habbe 4. Sep 2006 11:21

Re: Verpackte Dateien
 
Zitat:

Zitat von Bernhard Geyer
Der ADS Local Server ist nicht kostenlos wenn er in einem Client/Server-System wie ASP(.NET) oder in einer DCOM/COM+-Komponente verwendet wird. Auch erfordert die Verwendung in einer Remote Desktop-Session auch eine Server-Lizenz. Nur mal so nebenbei bemerkt.

OK, ich habe mir soeben die "Licensing note" durchgelesen. Von diesen Zugriffsarten bin ich nicht ausgegangen, ich meinte natürlich den direkten Zugriff auf die Daten aus der Anwendung heraus ohne Zwischenschicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14: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 by Thomas Breitkreuz