Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Datei aus MemoryStream öffnen (https://www.delphipraxis.net/149145-datei-aus-memorystream-oeffnen.html)

TheMiller 15. Mär 2010 13:59


Datei aus MemoryStream öffnen
 
Hallo,

ich sitze zwar gerade nicht an Delphi, aber mir ist eine Idee gekommen wie ich ein "Problem" lösen bzw. eine Vorgehensweise verschönern könnte. Wäre nett, wenn ihr mir ein bisschen was dazu sagen könntet.

Also, ich speicher Dateien (kleine PDFs etc.) in einer lokalen FireBird-DB. Ich habe mich dazu entschieden, da es sich beim Endanwender mit der Zeit um einige Dateien handeln wird, diese User nicht so versiert im Umgang mit PCs sind und daher die Datensicherung leichter ist. Auch, wenn man das Programm auf einen USB-Stick kopiert, hat man alles beisammen. Einfach und kompakt.

Nun, wenn die Dateien aus dem Programm heraus geöffnet werden, wird die Datei in ein temp-Verzeichnis extrahiert und mit ShellExecute geöffnet. Funktioniert prima, mich stört aber das Extrahieren in das Temp-Verzeichnis.

Meine Frage ist jetzt, ob man Dateien via ShellExecute (oder einem anderen Wege) aus einem MemoryStream laden kann, also das Öffnen ohne die vorherige Extrahierung.

Vielen Dank im Voraus

himitsu 15. Mär 2010 14:09

Re: Datei aus MemoryStream öffnen
 
Solange du keinen PDF-Reader findest, welcher die Daten auch anders, als nur als Datei entgegennimmt, wird dir nichts anderes übrig bleiben, als die Streams in temporäre Dateien abzuspeichern.

TheMiller 15. Mär 2010 14:12

Re: Datei aus MemoryStream öffnen
 
Ok, ich verstehe das Problem. Etwas problematischer wird es noch, da es auch Bilder etc. sein könnten. Gut, dann hat sich das soweit schon erledigt :wink:

Aber die Idee als Solche finde ich irgendwie toll. Wie machen das die Live-Syste wie Knoppix? Da liegen die Dateien doch auch alle im RAM?

DeddyH 15. Mär 2010 14:14

Re: Datei aus MemoryStream öffnen
 
Die richten AFAIK eine Ramdisk ein, verfügen also dann über ein Dateisystem.

himitsu 15. Mär 2010 14:15

Re: Datei aus MemoryStream öffnen
 
Dort wird ein Teil des RAM wie ein Datenträger verwaltet.

Also wenn du dir ein VirtualDrive einrichtest, dann könntest du die Datei dort reinkopieren/verlinken

TheMiller 15. Mär 2010 14:16

Re: Datei aus MemoryStream öffnen
 
Hm ja ne... Das wäre ein wenig übertrieben für das kleine Projekt. Außerdem strebt der erzielte Vorteil gegen null. Nunja, aber wieder was gelernt

Vielen Dank


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