AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

F2046 Zu wenig Arbeitsspeicher (Delphi)

Ein Thema von Sel2012 · begonnen am 7. Nov 2015 · letzter Beitrag vom 13. Nov 2015
Antwort Antwort
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.157 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 12. Nov 2015, 13:28
Du brauchst einmal ein Tool, welches Dir die Dateien (auf deinem Entwicklungsrechner) erstellt und dann deine auszuliefernde App, welche die Daten nach dem gleichen Basis-Prinzip wieder einliest.
Stimmt... Das schreibt man eben mal schnell
Mit dem AssetManager (gibs den unter Delphi ?) kann dann darauf als Stream of Bytes zugegriffen und somit in deine App eingelesen werden.
Und warum soll ich diese 3 Zeiler nicht in Delphi schreiben?

Ungepackt geht es so..
Delphi-Quellcode:
var
  RS : TResourceStream;
begin
  RS := TResourceStream.Create(HInstance,'MeinBild',RT_RCDATA);
  try
    RS.SavetoFile(Path+'MeinBild.jpg');
  finally
    RS.Free;
  end;
end;
Dann noch eine Bild.RC erzeugen mit folgendem Inhalt:

Meinbild RCDATA ".\MeinBild.jpg"

Geändert von Mavarik (12. Nov 2015 um 13:33 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
984 Beiträge
 
Delphi 6 Professional
 
#2

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 12. Nov 2015, 14:08
Mein Vorschlag ging darum, die Texte, Bilder, MP3s.. in separate Dateien auszulagern und dann zur Laufzeit nach zu laden.

Damit die (auszuliefernde) App bereits die Dateien mitbringt, müssen diese ja erstmal mit einem Tool erstellt werden.

Dieses Tool ist klar ein selbst geschriebenes Tool mit Delphi.

Alternativ können alle Texte, Bitmaps und Sounddateien auch in eine z.B. SQLLite DB gepackt und mit ausliefert werden.

Ob hierfür eine Datenbank notwendig ist... ?

Mit dem Tool werden die Dateien einfach in einen File-Stream der Reihe nach gespeichert (mit vorangestellter Dateigröße) und dann von seiner App per z.B. AssetManager in der gleichen Reihenfolge wieder aus dessen Byte-Stream gelesen.

Somit ist eben nicht alles in einer dicken App, sondern es können neue Texte/Bilder.. durch einfaches Austauschen seiner (externen) Files aktualisiert werden, ohne die App neu zu compilieren um die Ressourcen einzufügen.

(So war es jedenfalls unter Windows mit den .res Dateien, wenn sich an denen etwas verändert hat)

Wie das genau unter Mobile funktioniert, kann ich nicht sagen, da ich in dieser Richtung noch nicht entwickelt habe.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.157 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 12. Nov 2015, 15:04
Wie das genau unter Mobile funktioniert, kann ich nicht sagen, da ich in dieser Richtung noch nicht entwickelt habe.
Datenbank kann man machen muss man aber nicht.

Ich nehme immer gerne alles in die Exe als gepackte Resource... Dann funktioniert es gleich unter Windows und mobile.

Ansonsten kann man für die mobilen Plattformen natürlich in apk/ipa auch externe Dateien mitliefern...

Da kann man natürlich dann einfach alle Dateien angeben und schwupp liegen die auf dem Device...
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 12. Nov 2015, 15:21
Es gibt ja auch noch den Bereitstellungs-Manager
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.157 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 12. Nov 2015, 16:26
Ja das ist der "Name"... Für

Ansonsten kann man für die mobilen Plattformen natürlich in apk/ipa auch externe Dateien mitliefern...

Da kann man natürlich dann einfach alle Dateien angeben und schwupp liegen die auf dem Device...
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
984 Beiträge
 
Delphi 6 Professional
 
#6

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 13. Nov 2015, 04:42
Der 'Vorschlag' zum auslagern kommt daher, dass ich immer gerne 'Daten' (wie hier die Texte, Bilder und MP3s) aus meiner EXE heraushalten will.

Das hat den Vorteil, dass diese ausgetauscht werden können, ohne die Exe neu zu compilieren.

Zusätzlich können die Externen Daten/Dateien sequenziell eingelesen werden, also nicht wie im Falle von Ressourcen direkt beim Programmstart. Es wird aus diesen Dateien nur dass eingelesen, was wirklich gerade gebraucht wird.

Auch kann für diese externen 'Archive' eine Kompression genutzt werden.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.157 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 13. Nov 2015, 10:05
Der 'Vorschlag' zum auslagern kommt daher, dass ich immer gerne 'Daten' (wie hier die Texte, Bilder und MP3s) aus meiner EXE heraushalten will.

Das hat den Vorteil, dass diese ausgetauscht werden können, ohne die Exe neu zu compilieren.
Stimmt... compilieren dauert ja auch immer so lange...


Zusätzlich können die Externen Daten/Dateien sequenziell eingelesen werden, also nicht wie im Falle von Ressourcen direkt beim Programmstart. Es wird aus diesen Dateien nur dass eingelesen, was wirklich gerade gebraucht wird.
Also ich lade die Daten aus der Resource wenn ich die brauche... und nicht jedes mal beim Programmstart. Ggf. auch nur beim 1. Start oder falls der User eine Datei die wichtig war gelöscht hat...

Dadurch bleibt mein Programm immer konsistent und lauffähig.

Auch kann für diese externen 'Archive' eine Kompression genutzt werden.
Kann ich bei einer Resource genau so...
  Mit Zitat antworten Zitat
Antwort Antwort


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:44 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