1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Format von gespeicherten Dateien einer Anwendung...

Dieses Thema im Forum "AppleScript" wurde erstellt von Zettt, 15.12.07.

  1. Zettt

    Zettt Doppelter Melonenapfel

    Dabei seit:
    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
     
  2. osfreak

    osfreak Zuccalmaglios Renette

    Dabei seit:
    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
     
  3. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    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
     
  4. Zettt

    Zettt Doppelter Melonenapfel

    Dabei seit:
    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?
     
  5. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    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.
     
  6. Zettt

    Zettt Doppelter Melonenapfel

    Dabei seit:
    16.10.05
    Beiträge:
    3.374
    Das klingt ziemlich gewettert. Ein (besser) Loesungsvorschlag wird jedoch nicht mitgeliefert. ;)
     
  7. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    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.
     
    Zettt gefällt das.
  8. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    Kannst du das konkret ausführen?
     
  9. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    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.

    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.
     
  10. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    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.
     
  11. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    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.
     
  12. Zettt

    Zettt Doppelter Melonenapfel

    Dabei seit:
    16.10.05
    Beiträge:
    3.374
    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...
    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 ([​IMG])
     

    Anhänge:

  13. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.252
    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.
     
  14. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    Nein, du sprachst von Property Lists. Der Doctype eines Formats steht ja in der XML:
    iTunes Music Library.xml:
    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.

    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.

    Dazu wollte ich eigentlich die Begründung hören …

    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?
     
  15. KayHH

    KayHH Gast

    Ich hol schon mal Popcorn …
     
  16. Zettt

    Zettt Doppelter Melonenapfel

    Dabei seit:
    16.10.05
    Beiträge:
    3.374
    Das kann lustig werden. Kann aber auch ins Auge gehen - wenn sich die Experten streiten. :D

    Ich hol zusaetzlich noch nen Mod der das Ganze ueberwacht. :p
     
  17. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    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.
     
  18. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Wehe Du verrätst das meinem Chef!
     
  19. osfreak

    osfreak Zuccalmaglios Renette

    Dabei seit:
    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
     

Diese Seite empfehlen