![]() |
Unterschied zwischen Debug und Anwendungs-Store Modi bei iOS
Hi,
ich habe hier ein Problem mit einer 200mb großen Datei die ich für eine App unter iOS laden will. Im Debugmodus klappt das ganze problemlos, aber im Anwendungs-Store-Modes stimmt die Dateigröße nicht und da ich meine Indexinformationen am Dateiende habe sind die Indexdaten natürlich Schrott. Die Klasse schaut so aus:
Delphi-Quellcode:
unit UMyDB;
interface uses System.Classes, System.SysUtils; type TIndex = packed record Offset: Int64; len: Cardinal; flags: Cardinal; end; TMyDB = class private FStream: TFileStream; FIndex: Array of TIndex; function GetCount: Cardinal; public constructor Create(const Filename: String); destructor Destroy; override; function Read(index: integer; Stream: TMemorystream): Boolean; property Count: Cardinal read GetCount; end; implementation constructor TMyDB.Create(const Filename: String); var len: Cardinal; sz: Int64; begin SetLength(FIndex, 0); if FileExists(Filename) then begin FStream := TFileStream.Create(Filename, fmOpenRead); FStream.Position := FStream.Size - 4; FStream.Read(len, 4); SetLength(FIndex, len); sz := sizeof(TIndex) * len; FStream.Position := FStream.Size - 4 - sz; FStream.Read(FIndex[0], sz); end; end; destructor TMyDB.Destroy; begin FreeAndNil(FStream); SetLength(FIndex, 0); inherited; end; function TMyDB.GetCount: Cardinal; begin result := Length(FIndex); end; function TMyDB.Read(index: integer; Stream: TMemorystream): Boolean; begin result := (index >= 0) and (index <= high(FIndex)); if result and assigned(Stream) then begin Stream.SetSize(FIndex[index].len); FStream.Position := FIndex[index].Offset; FStream.Read(Stream.Memory^, Stream.Size); FStream.Seek(0, 0); end; end; end. |
AW: Unterschied zwischen Debug und Anwendungs-Store Modi bei iOS
Im Debug-Modus die Dateigröße eh anders als im Release-Modus (hatten wir gerade erst das Thema). Bie iOS werden zudem noch andere Bibliotheken (*.dcu) benutzt als für den Emulator.
Schau dir mal bei den Projekt-Optionen die Pfade der Bibliotheken an. Da gibt es durchaus Unterschiede. Wirklich sinnvoll erscheint mir diese Vorgehensweise schon mal gar nicht und ob das beim Review gut ankommt, kann ich mir auch nicht vorstellen. Warum keine eigene Datei, die du in das Paket mit einbindest? |
AW: Unterschied zwischen Debug und Anwendungs-Store Modi bei iOS
Ich hab mich wahrscheinlich falsch ausgedrückt. Die "Datenbank" ist 180mb groß und besteht aus knapp 20000 Records. Diese sind in der Datei gespeichert und werden mit obiger Klasse gelesen. Nun ist aber in der Anwendungs-Store Konfiguration die Dateigröße eine andere als die eigentliche. Es ist als ob TFileStream auch nicht an die richtige Position springt, sofern man eine bestimmte KB Größe überschritten hat.
|
AW: Unterschied zwischen Debug und Anwendungs-Store Modi bei iOS
Welche Dateigröße?
Die von der EXE Anwendung oder die der DB-Datei? |
AW: Unterschied zwischen Debug und Anwendungs-Store Modi bei iOS
Da er von seiner "Datenbank" redet, wird er diese meinen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 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