Datei in .app/Content speichern

G

Glasfisch

Neues Mitglied
Thread Starter
Dabei seit
23.01.2012
Beiträge
6
Reaktionspunkte
0
N' Abend :)

Ich möchte eine Datei (.txt) in dem Paketinhalt einer *.app speichern.
Also Beispielsweise *.app/Content/Resources/datei.txt
Ist das möglich?

In dem Programm soll dann auf den obrigen Pfad zugegriffen werden (die txt Datei wird eingelesen).

Übrigens programmiere ich in Delphi mit RAD Studio XE2.

Danke für alle kommenden Antworten.

Grüße, Glasfisch.
 
Danke für deine Antwort.
Soweit bin ich noch nicht und von Cocoa hab ich absolut keine Ahnung.
Die Ordnerstruktur einer App die mit Delphi erstellt wurde ist dieselbe wie eine die mit Cocoa erstellt wurde, soweit bin ich :D

Ist es denn mit Cocoa möglich eine Datei im Paketinhalt einzulesen bzw. abzuspeichern?
 
cocoa und core foundation geben dir halt eine funktion, damit du den pfad zum bundle einfach bekommst.
das bundle liegt ja nicht unbedingt in /Applications und hat überall bei jedem den gleichen pfad.
der rest sind einfache file operationen...
 
Uh, okay :/
Hab gerade einen Teil dazu durchgelesen.

Ich arbeite erst seit 3 Tagen mit XE2 und der Möglichkeit Apps für jede Plattform zu entwickeln, daher hält sich mein Wissen über die neuen Zielplattformen und die damit verbundenen Möglichkeiten in Grenzen.

Ich gehe mal davon aus das es so eine Funktion in Delphi für MacOSX nicht gibt.
Jedoch werd ich trotzdem weiter suchen und probieren :)

Aber für den Fall dass das nichts wird:
Ich möchte eine App schreiben die 2 oder mehr Variablen während der Laufzeit speichern soll und bei dem nächsten Start wieder einlesen soll.

- Dazu ist mir in den Sinn gekommen mit einer Datenbank zu arbeiten, allerdings wäre das zu viel Aufwand für 2 Variablen.

- Meine zweite Idee war,.... diese hier. ;) Eine Datei mit den Variablen im Content Ordner der App abzulegen.

Hast du eine alternative Idee wie ich das realisieren könnte und die zwei Variablen irgenwo speichern und einlesen könnte?


Grüße, Glasfisch.
 
Ja, mit Cocoa oder CoreFoundation. Wie Du aber mit Delphi auf diese Funktionen zugreifst weiss ich nicht.

In CoreFoundation suchst Du CFBundleCopyResourcesDirectoryURL, in Cocoa wahrscheinlich resourcePath

Lies Dir den Link von 108 mal durch

Alex
 
keine ahnung was delphi dir da anbietet, aber da wird es doch auch irgendwas für preferences von apps geben...
 
Ich möchte eine App schreiben die 2 oder mehr Variablen während der Laufzeit speichern soll und bei dem nächsten Start wieder einlesen soll.
Man versucht doch nicht seine Prefs im App-Bundle zu speichern. Darüber hinaus haben die in der Local Domain (*) gar nichts verloren. Und das geht ohne Anforderung von Admin-Privilegien im Regelfall sowieso schief. Sollte eigentlich einleuchten.

Prefs liegen im Allgemeinen in den User Domains. Wie von oneOeight schon genannt gibt es extra dafür die Defaults (**). Damit landen die automatisch an der richtigen Stelle. Die liegen dann für gewöhnlich in $HOME/Library/Preferences/ (***), aber darum kümmert sich im Detail das System selbst.

* http://developer.apple.com/library/....html#//apple_ref/doc/uid/TP40010672-CH2-SW15
** http://developer.apple.com/library/...PreferenceDomains/AboutPreferenceDomains.html
*** http://developer.apple.com/library/....html#//apple_ref/doc/uid/TP40010672-CH10-SW1
 
Zuletzt bearbeitet:
ihr solltet auch nicht vergessen, dass er das ganze per delphi und cross-compilieren machen will.
da wird er wohl keinen zugriff auf cocoa klassen haben...
 
Gut, andere Leute zahlen Geld um sich von einer Frau in hohen Stiefeln Schmerzen zufügen zu lassen. Mit Delphi cross-compilieren ist da viel billiger und erreicht das gleiche Ziel, sehe ich ein.

Spass beiseite: Irgendwie, irgendwo, muss Delphi einen Durchstoss auf's System haben, und damit auf CoreFoundation. Im schlimmsten Fall über "extern C" oder sowas.

Alex
 
@below: Der Zugriff auf die Daten: Lesen, Schreiben. Anyways...es geht darum das ich das Programm mit Delphi nur einmal schreiben muss und dann eine PC/Mac/iPhone/Android-Phone etc. Anwendung erhalte und das mit einer einfachen und doch umfangreichen Sprache wie Delphi, das bietet mir keine andere Sprache und kein anderer Compiler.


@iCode die cocoafunktionen bringen mir in Delphi leider nichts. Außerdem sind die Zeichen die ich speichern/lesen will keine "Prefs", Einstellungen oder wie du es sonst nennen möchtest ;)

Weiter auf der Suche. Danke für die bisherigen Antworten

Grüße, Glasfisch.
 
TIniFile geht nicht, wenn du cross-compilierst?
 
:D Ha.
Uhm.... ich hab gerade rausgefunden, das die Funktionen zum erstellen von Dateien jeder Art mit Delphi unter Windows genauso gut funktioniert unter MacOSX ^^
Der speichert die Dateien automatisch im Contents/MacOS Ordner wenn ich keinen Pfad sondern nur den Dateinamen angebe. Ups ^^
Und ich dachte man müsste für Mac extra eine Prozedur coden, ....aber es ist vieeeeel simpler als ich gedacht habe. Ich liebe Delphi.... und Mac. :D

TIniFile geht nicht, wenn du cross-compilierst?
Ich habs nur mit assignfile, filestream und ganz simpel SaveToFile ausprobiert, aber mit iniFile müsste es genauso funktionieren.
:)

Danke für alle antworten, insbesondere deinen zahlreichen oneOeight ;)

Man hört voneinander beim nächsten Mac/Delphi Salat :D

Grüße, Glasfisch.
 
:Der speichert die Dateien automatisch im Contents/MacOS Ordner wenn ich keinen Pfad sondern nur den Dateinamen angebe..

ACHTUNG! Du hast gelesen, dass Du möglicherweise in der Produktionsversion Deiner App KEINE SCHREIBRECHTE für diesen Pfad hast?

Alex
 
ACHTUNG! Du hast gelesen, dass Du möglicherweise in der Produktionsversion Deiner App KEINE SCHREIBRECHTE für diesen Pfad hast?

Alex
Doch hab' ich.
Aber diese App ist sowieso nur für mich und ein paar Freunde.
Was für einen Pfad soll ich sonst nehmen, .......ich möchte halt gern das die Daten im Paketinhalt sind ;) hab' dann nen bessren Überblick.
 
Man kann einen riesen Aufwand betreiben und sich die 'Rechte' dafür 'geben' lassen. (Dafür gibt es sogar ein grottiges Beispiel von Apple.) Mal abgesehen davon, dass es gegen alle sinnigen 'Regeln' ist - und dies ab 10.7 und spätestens 10.8 eh fürn Ar… - da Sanboxed Apps das schlicht und nicht mehr dürfen …
 
Doch hab' ich.
Aber diese App ist sowieso nur für mich und ein paar Freunde.
Was für einen Pfad soll ich sonst nehmen, .......ich möchte halt gern das die Daten im Paketinhalt sind ;) hab' dann nen bessren Überblick.

Wenn es nur 'wenig' Text ist, kannst du dies in die Info.plist schreiben lassen …
 
Zurück
Oben Unten