Format von gespeicherten Dateien einer Anwendung...

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
Hallo,


Der Threadtitel ist peinlich schlecht gewählt aber...here we go.

Die Frage lautet in welcher Weise werden denn Daten einer in Xcode erstellten Anwendung gespeichert?

Ich dachte daran, diese in einem plattformunabhängigen Format zu speichern. Also CSV oder XML oder irgend so etwas in der Art.
Wie schwer oder einfach kann man so etwas umsetzen?


Danke
 

osfreak

Zuccalmaglios Renette
Registriert
19.12.04
Beiträge
262
Für das Speichern der Daten einer Anwendung ist immer der Programmierer selber zuständig. Das hat mit XCode überhaupt nichts zu tun. XCode ist das Werkzeug und die Anwendung ist das Produkt.

XML ist so ein Zauberwort, aber jede Anwendung legt sie etwas anders aus. Am besten ist: Zuerst die Spezifikation lesen und danach selber entscheiden.

Mit CSV kenne ich mich nicht so aus aber ich glaube das ist auch ein Hilfsmittel für Programmierer und kein Anwendungsdatenformat.

Thomas
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
CSV ist auch ein Format, aber wie Du sagst: Es ist dem Programmierer selbst überlassen.

In Cocoa gibt es z.B. NSArchiever und NSUnarchiever zum serialisieren von Objekten, das wird gerne genommen. Auch NSPropertyListSerialization oder NSData sind optionen.

Alex
 

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
NSArchiver klingt ganz nuetzlich.

Aber was heisst es bleibt dem Programmierer ueberlassen? Soll das heissen es ist definitiv moeglich eine XML Datei (waere mir das liebste) zu schreiben?
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
CSV ist kein Format, CSV ist eine Krücke.
XML ist ein schönes BUZZword und auch, wenn richtig angewandt, sehr nützlich. Aber schau Dir mala an, was die iTunes Programmier unter XML verstehen. Wenn Du ein wenig Ahnung von XML und XPATH/XSLT hast, wirst Du schnell merken, was für ein Bockmist das ist.
 

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
CSV ist kein Format, CSV ist eine Krücke.
XML ist ein schönes BUZZword und auch, wenn richtig angewandt, sehr nützlich. Aber schau Dir mala an, was die iTunes Programmier unter XML verstehen. Wenn Du ein wenig Ahnung von XML und XPATH/XSLT hast, wirst Du schnell merken, was für ein Bockmist das ist.

Das klingt ziemlich gewettert. Ein (besser) Loesungsvorschlag wird jedoch nicht mitgeliefert. ;)
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
NSArchiver klingt ganz nuetzlich.

Aber was heisst es bleibt dem Programmierer ueberlassen? Soll das heissen es ist definitiv moeglich eine XML Datei (waere mir das liebste) zu schreiben?
Beim Coding (NSArchiver, NSKeyedArchiver, NSUnarchiver, NSKeyedUnarchiver) wird die Grobstruktur vom Framework gebastelt und die einzelnen Objekte von der Applikation. Diese bestimmt, welche einzelnen Daten gespeichert werden. Außerdem weiß freilich nur sie, wie die Objekte zusammenhängen.
http://developer.apple.com/documentation/Cocoa/Conceptual/Archiving/Archiving.html

Du kannst außerdem Property Lists schreiben. Hier kannst (willst) du gültiges XML verwenden.
http://developer.apple.com/documentation/Cocoa/Conceptual/PropertyLists/PropertyLists.html

Wie bereits erwähnt gibt es auch noch Core Data, welches sich auch um die Persistenz kümmmert:
http://developer.apple.com/documentation/Cocoa/Conceptual/CoreData/cdProgrammingGuide.html
Auch hier kann man XML als Format wählen.

Schließlich kann eine Applikation selbst ihre Daten "Byte für Byte" zusammenbauen.
 
  • Like
Reaktionen: Zettt

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
CSV ist kein Format, CSV ist eine Krücke.
XML ist ein schönes BUZZword und auch, wenn richtig angewandt, sehr nützlich. Aber schau Dir mala an, was die iTunes Programmier unter XML verstehen. Wenn Du ein wenig Ahnung von XML und XPATH/XSLT hast, wirst Du schnell merken, was für ein Bockmist das ist.
Kannst du das konkret ausführen?
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Das klingt ziemlich gewettert. Ein (besser) Loesungsvorschlag wird jedoch nicht mitgeliefert. ;)
Ein Lösungsvorschlag stellt die Darlegung eines Problems voraus. Das kann ich in Deiner Frage aber nicht finden. Zumindest nichts, daß in seiner Allgemeinheit schon beantwortet worden wäre. Im Prinzip kannst Du alle Daten speichern, wie Du willst. Es ist halt die Frage, was für die Zwecke, die Du erreichen willst, das Optimum ist. Erzähl doch mal mehr. Nebenbei: Ich wußte gar nicht, daß Du begonnen hast zu Programmieren.

Kannst du das konkret ausführen?
Ja. Aber soll ich das tatsächlich in diesem Thread?

Um mal kurz Hinweise zu geben, bezüglich CSV:
Kannst Du mir irgendwelche "Normen" oder Defeinitionen dazu nennen?
Jeder Prorammierer kocht doch da sein eigenes Süppchen und es ist einem Programm schlichtweg unmöglich zu erkennen, was die konkrete CSV Datei nun gerade verwendet um:
  • Werte zu trennen (Komme, Semikolon, Doppelpunkt, Pipe, Tab...)
  • Datensätze zu trennen (Meist Zeilenumbruch)
  • Textwerte zu kennzeichnen Oft " oder ', meist aber gar nichts)
Ebenso ist es unmöglich festzustellen
  • ob eine Headerzeile enthalten ist
  • wie "Sonderzeichen" kodiert sind (Zeilenumbruch in Werten oder "Quotes" in Texten)

Von daher verbietet sich CSV schon fast als Austauschformat.

Was XML, wie es die iTunes Programmierer verstehen, angeht.

Ein vernünftiges XML würde XPATH Ausdrücke, ähnlich diesem zulassen:
Artist[ @name="Ärzte" ]/Album[ @name="Jazz ist anders" ]/Track
Versuch mal so was für iTunes' XML Datei zu schreiben.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Ich meinte freilich nur XML.

Wieso würde das ein vernünftiges XML zulassen? Um es zu komplizieren? Damit es keine Property List mehr ist?

Ich sehe keinen Vorteil.
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Ich meinte freilich nur XML.

Wieso würde das ein vernünftiges XML zulassen? Um es zu komplizieren? Damit es keine Property List mehr ist?

Ich sehe keinen Vorteil.
Ach! Du redest von Property Listen. Ich wunderte mich schon. Property Listen sind sicherlich in eine XML Struktur gepackt. Die sind auch ganz praktisch, wenn man die Daten ablegen und nachher wieder laden will. Aber in dieser Form bringen sie keinerlei Vorteil gegenüber einem Binärformat. Aber sinnvolles XML ist das nicht. Nur: Wenn Du schon fragen mußt, wieso ein "vernünftiges XML das zulassen" würde, dann können wir diese (offtopic) Diskussion hier gleich beenden. Eine Einführung in XML führt einfach zu weit.
 

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
Es ist halt die Frage, was für die Zwecke, die Du erreichen willst, das Optimum ist. Erzähl doch mal mehr.
Auf unserer Schule setzt jeder Praxispruefer so bisschen sein eigenes Sueppchen an Praxispruefungsmechanismus ein.
An sich ja kein Problem. Nur hat man eben keine zentrale Einheitlichkeit. Ich dachte darueber nach, man koennte ein Programm schreiben bei dem grundsaetzlich die Flexibilitaet fuer jeden Pruefer erhalten bleibt jedoch die Daten zentral einheitlich gespeichert sind.

Ausserdem sind die eingesetzten Tools zu ... naja argh halt.
Ich habe meine Datenbank im OpenOffice Base EINMAL gemacht. Und kann sie seither nicht mehr veraendern, da ich nicht mehr weiss wie ich's letztendlich hingebracht hab.
Ein anderer setzt eine Demo einer Datenbankloesung ein.

Und ich dachte daran eine Cocoa Anwendung zu nehmen, da sich ein solche Proefungsprotokoll, denke ich, sehr einfach ueber Bindings erledigen laesst.
Im Anhang mal ein schneller Entwurf wie so etwas aussehen koennte...
Nebenbei: Ich wußte gar nicht, daß Du begonnen hast zu Programmieren.
Och das geht schon laenger jetzt...angefangen hat's wohl mit dem Wunsch bisschen programmieren zu lernen (Das war 2005 oder so). Dann folgte die erste Problemstellung von deren Loesung ich noch weeeiiit entfernt bin. (Ein Audiotool das es noch nicht gibt, ich aber todesnuetzlich finden wuerde (naja gelogen...aber ist halt noch nicht veroeffentlicht))
Dann kam das Projekt aus meiner Studienzeit. Eine Tabellenkalkulation fuer die sogenannten "Golden Ears" die habe ich mir geschrieben, damit die Uebung bisschen schoener zu machen geht und ich nicht staendig nachschauen muss ob ich gerade die richtige Antwort gegeben hab. Spaeter dann nochmal in Flash programmiert und wird seit ueber einem Jahr an unserer Schule eingesetzt.

Zwischendrin hab ich mir auch ein paar Skriptsprachen angesehen wie PHP, Ruby, Shell, AppleScript (
uebel15x18.gif
)
 

Anhänge

  • Picture 2.png
    Picture 2.png
    49,9 KB · Aufrufe: 85

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.057
Ich habe meine Datenbank im OpenOffice Base EINMAL gemacht. Und kann sie seither nicht mehr veraendern, da ich nicht mehr weiss wie ich's letztendlich hingebracht hab.
Nimm ein RDBMS (MySQL oder PostgreSQL) und bau Dir dazu eine Oberfläche (OpenOffice Base; Cocoa App Objective-C, Ruby oder Python; Java App, ...). Das geht schnell und ist der üblichen Lösungsweg für die Erfassung von immer gleichen Datensätzen.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Ach! Du redest von Property Listen.
Nein, du sprachst von Property Lists. Der Doctype eines Formats steht ja in der XML:
iTunes Music Library.xml:
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

Ich wunderte mich schon. Property Listen sind sicherlich in eine XML Struktur gepackt. Die sind auch ganz praktisch, wenn man die Daten ablegen und nachher wieder laden will.
Ja, darum geht es bei Persistenz. Es ist gewissermaßen der Sinn und Zweck von persistenz. Übrigens: Die Music-Lib dient eigentlich nur dem Export.

Aber in dieser Form bringen sie keinerlei Vorteil gegenüber einem Binärformat.
Du kannst Property Lists auch "binäre" abspeichern. Bei Property Lists handelt es sich um eine Datenstruktur, die persistieren kann. XML ist dabei nur ein Format.

Aber sinnvolles XML ist das nicht.
Dazu wollte ich eigentlich die Begründung hören …

Nur: Wenn Du schon fragen mußt, wieso ein "vernünftiges XML das zulassen" würde, dann können wir diese (offtopic) Diskussion hier gleich beenden. Eine Einführung in XML führt einfach zu weit.
Eine Einführung für Anfänger kommt ziemlich schnell auf den Doc-Type. Und wer da nicht als erstes reinschaut …

Sei ehrlich: Du hast keine Ahnung davon, oder?
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Nicht nötig. Ich wollte dazu ohnehin einen Blog-Eintrag schreiben, so dass sich die Diskussion hier für mich erübrigt.
 

osfreak

Zuccalmaglios Renette
Registriert
19.12.04
Beiträge
262
Property Lists sind nicht plattformunabhängig wie eingangs gefordert und scheiden damit aus.

Am besten ist wohl, die OpenOffice-Dokumentation mal durchzulesen, festzustellen wie Base seine Daten speichert und dann entsprechend loszuprogrammieren.

Thomas