![]() |
Viele Dateien bereitstellen
In meinem aktuellen Projekt muss ich für einen Produktkatalog, der unter Android/iOS laufen soll, ca 500 Bilddateien bereitstellen; die müssen leider mitinstalliert werden, können also nicht per HTTP von irgendeinem Server abgerufen werden. Ich kann diese Dateien ja über das Menü "Projekt" / "Bereitstellung" einbinden ... Allerdings dauert das bei 500 Dateien schon ne ganze Weile, anschließend muss ich dann noch für jede der Dateien jeweils für iOS und für Android den jeweiligen Remote-Pfad eingeben. Also jeden Eintrag doppelt anklicken, rechte Maustaste und den Pfad einfügen (STRG+V funktioniert da leider genauso wenig wie Mehrfach-Auswahl).
Gibt es eine einfachere Möglichkeit? Da sitze ich ja ewig dran :? |
AW: Viele Dateien bereitstellen
Pack den ganzen "Rotz" in eine Datei (zip oder simpler Stream mit Index) und stelle nur diese eine Datei bereit.
|
AW: Viele Dateien bereitstellen
Die Idee hatte ich auch schon, also dass ich die ZIP ja mitgeben kann und beim Start in ein eigenes Unterverzeichnis entpacke, wenn es das noch nicht gibt. Ist nur die Frage: Überleben die Verzeichnisse unterhalb von "assets\internal\" bzw. "StartUp\Documents\" ein Beenden bzw. Updaten der App? Das habe ich noch nicht so ganz kapiert, also den Unterschied von assets und assets\internal.
|
AW: Viele Dateien bereitstellen
Kann SQLite mit BLOB's umgehen? Wenn ja...: Tadaa.
|
AW: Viele Dateien bereitstellen
Zitat:
|
AW: Viele Dateien bereitstellen
Ich würde die gar nicht entpacken, sondern direkt aus dem Stream herauslesen.
Zum Starten den Index aus dem Stream lesen und dann mit diesem direkt darauf zugreifen. Bilder, die schon einmal aus dem Stream geladen wurden einfach als Instanz im Speicher cachen. Wenn dann die Benachrichtigung "Memory low" kommt, einfach diesen Cache wieder reduzieren bzw. komplett entleeren. Siehe dazu auch das Flyweight-Pattern |
AW: Viele Dateien bereitstellen
Zitat:
Welche Probleme sollte es deiner Meinung denn bereiten, Bilddateien in einer Datenbank zu verwahren? Im Übrigen vergraulst du dir hilfsbereite User, wenn du hier ![]() Im Übrigen scheint es mit deinen Programmierkenntnissen doch nicht so weit her zu sein, wenn du ein Zip-Archiv erst einmal "in ein eigenes Unterverzeichnis entpacke"n willst, bevor du auf die darin befindlichen Bild-Dateien zu- oder lieber gleich auf typisierte Dateien zurückgreifst, weil du nicht gut mit Datenbanken kannst. Ich kann mich des Eindrucks nicht erwehren, daß du hier ein Selbstwert- und Autoritätsproblem auszutragen und mit deinem Gehabe zu kompensieren suchst, das im Grunde hier nicht hergehört: Du bist hier nicht in deinem Ausbildungsbetrieb der Chef und die Autoritätsperson, sondern einer unter Gleichen, weshalb man sich auch auf Augenhöhe begegnen sollte, ohne jede Selbsterhöhung, Selbstbeweihräucherung und Herabsetzung vermeintlich Jüngerer (sagt dir ein selbständiger Entwickler Jahrgang '60 ohne Azubis). |
AW: Viele Dateien bereitstellen
Bei Datenbanken wie MS SQL oder Firebird kann man problemlos dafür Blob-Felder nutzen. Die mit Delphi mitgelieferten Beispieldatenbanken enthielten übrigens die Fischbilder auch. (Die aktuellen Beispiele habe ich mir schon länger nicht mehr angeschaut, kA wie das heute ist.)
SQLite hingegen ist dafür leider nicht gut geeignet, auch wenn es theoretisch geht. Einerseits gibt es Probleme mit bestimmten Zeichen, so dass diese kodiert werden müssen, andererseits wird es nicht empfohlen größere binäre Daten abzulegen und die Limits sind auch relativ gering. |
AW: Viele Dateien bereitstellen
Zitat:
Wir selbst speichern auch Bilddateien in der DB. Exedateien dagegen nicht. @Dejan Vu: Bei SQLite kommt das auf die Menge der Bilder an und wie schnell (viel in kurzer Zeit) du sie benötigst. Gegenüber anderen DBMS war (vor 3-4 Jahren)SQLite erheblich langsamer bei BLOB-Feldern diese zu speichern. |
AW: Viele Dateien bereitstellen
Zitat:
Allerdings wüsste jetzt auch konkret nicht, was ich großartig Anderes als binäre Dateien in einem BLOB (binary large object) ablegen sollte. Ich meine, irgendwie impliziert der Name, das das nicht ganz falsch sein kann. Vielleicht hältst Du dich mit bewertenden Äußerungen gegenüber anderen in Zukunft etwas zurück. Es wäre denkbar, das Du dich damit zu weit aus dem Fenster legst und bei zwei Versuchen ist es ja auch zweimal ein Eigentor geworden. Zitat:
Als Container für binäre Daten wird es vermutlich brauchbar sein, für den schnellen Zugriff ist es vielleicht nur bedingt geeignet (wie gesagt: Probieren). Der wahlfreie Zugriff ist aber das Entscheidende (als Alternative zu einem Dateisystem). Gewiss: Irgend eine andere structured storage engine würde es genauso tun, aber wenn man schon bei SQLite ist und das offensichtlicher Industriestandard im Tabletsektor ist, sollte man sich das vielleicht mal anschauen. Edit: Nichts ersetzt eigene Versuche, aber SQLite kennt die Frage wohl schon: ![]() Natürlich ist das nicht auf einem Tablet, sondern einer Linux-Büchse, aber es zeigt schon, das es eine Alternative zu sein scheint. Es kommt hier ausnahmsweise mal auf die Größe an. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 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