Alternatives DAteiformat zu INI,XML, CSV ,etc.



  • Salli,

    ich muss bzw. will Diverse Daten Speichern. DAzu brauch ich ein passendes verbreitetes Dateiformat. Datenbanken oder Binärfiles fallen weg.

    Die Daten sollen auch mit einem editor gelesen/ evtl. modfiziert werden können. Die daten können eine hierachiesche struktur haben. Zudem will ich daten Aufzeichnen, und muss die datensätze auch in ein leserliches format (via edior) ablegen.

    Was bietet sich da an? Für Aufzeichnung von Datensätzen würde ja ne CSV datei anbieten, allerding, müsssen noch header daten mitabgespeichert werden, was dann ehr so im XML oder INI format ausehen "könnte".

    Dann hab ich noch Programmdateien, welche das selbe format haben sollten allerdings ohne die aufzeichnungsdatensätze etc.

    Was gibt denn noch Daten vernünftig einfach, lesebar abzuspeichern? Das Problem ist auch , das die aufzeichnunsdateine sehr groß werden können.

    Später sollen die dateien auch wieder einfach eingelesen/geparst werden können. was meint ihr?



  • Die daten können eine hierachiesche struktur haben.
    (...)
    Für Aufzeichnung von Datensätzen würde ja ne CSV datei anbieten
    (...)
    Dann hab ich noch Programmdateien, welche das selbe format haben sollten allerdings ohne die aufzeichnungsdatensätze etc.
    (...)

    WTF?
    Um was für Daten geht es denn?
    Vielleicht könntest du mal ein Beispiel geben wie diese "Daten" und/oder "Programme" aussehen könnten.
    Welches Format Sinn macht hängt halt davon ab was es für Daten sind.

    CSV, da du es erwähnt hast, macht nur Sinn bei tabellarischen Daten. Jetzt schreibst du aber dass die Daten eine "hierachiesche struktur" haben können. Also was jetzt?

    Und was verstehst du unter "Programmdateien"?



  • Ohne die Art der daten zu kennen ist natuerliches alles reine Raterei, jedoch... Xml.

    Gerade wenn die Datenmengen sehr groß werden können bietet sich Xml an, weil es mittlerweile native XML Datenbanken gibt und man mit XPath und XQuery gezielt und mit guter Performance auf einzelne Datensätze zugreifen kann. Im Falle einer Xml Datenbank (z.B. MsSql, eXist) muss man dazu nichtmal das ganze Dokument im Speicher halten.

    Also bleibt die Frage: Warum nicht Xml?



  • CSV, da du es erwähnt hast, macht nur Sinn bei tabellarischen Daten. Jetzt schreibst du aber dass die Daten eine "hierachiesche struktur" haben können. Also was jetzt?

    Ebenen das ist Problem... Also die Aufzeichnungsdaten sehen ungefähr so aus:

    ---------------------------------------
    Date: xxxxxxxxxx
    Comment: xxxxxxxxxx
    User:xxxxxxxxxx
    .
    .
    .
    
    Record:
    timestamp; DataA; DataB; DataC; ........ DataN
    000000000 ; 1; 2; 3; N
    .
    .
    .
    .
    

    Programm daten:

    ---------------------------------------
    Date: xxxxxxxxxx
    Comment: xxxxxxxxxx
    User:xxxxxxxxxx
    .
    .
    .
    
    Programsteps:
    Step; DataA; DataB; DataC; ........ DataN
    0000 ; 1; 2; 3; N
    .
    .
    .
    .
    

    nun ja Mein Chef will unbeding das es in CSV gemacht wird, damit die Kunden die Daten in Excel öffnen können und leicht modifizier bar ist.... zudem will er eine checksumme der daten einfügen, damit man erkennt werden kann ob jemand was manipuliert wird... naja er weis glaub nich was er will 😡 😕 nerv..

    Aber das ist doch totaler quatsch.. ist ne ewig frickelei die daten so abzuspeichern, und auch wieder einzulesen. 😡

    XML ist doch auch schon mit jedem Editor barbeitbar..1?



  • MrData schrieb:

    nun ja Mein Chef will unbeding das es in CSV gemacht wird, damit die Kunden die Daten in Excel öffnen können und leicht modifizier bar ist.... zudem will er eine checksumme der daten einfügen, damit man erkennt werden kann ob jemand was manipuliert wird... naja er weis glaub nich was er will 😡 😕 nerv..

    Dann machs halt mit CSV.

    Aber das ist doch totaler quatsch.. ist ne ewig frickelei die daten so abzuspeichern, und auch wieder einzulesen. 😡

    Nicht wirklich, XML ist auch nicht besser. Es gibt auch Libs direkt zum schreiben von Excel Dateien, für Java mal.

    XML ist doch auch schon mit jedem Editor barbeitbar..1?

    Nicht für Kunden, die sind zu dumm für XML, die können nur Excel.



  • Hi,

    für sowas bin ich immer Fan von Tab-getrenntem Text. Das ist Versions- und systemunabhängig, Zeichen und Tabulatoren wirds wohl in 50 Jahren noch geben.
    Außerdem ist das störunanfälliger als CSV, weil man normalerweise davon ausgehen kann, daß in Zeichenketten keine Tabs vorkommen (ggf. rausfiltern). Der nächste Tab ist also automatisch IMMER die nächste Spalte. Und man braucht für ein Tab nur ein Zeichen. Wenn man mit Komma arbeitet muß eventuell die ganze Zeichenkette die ein Komma enthalten kann in Anführungszeichen, und wenn da eines drin ist, muß das als Doppelanführungszeichen... Alles heute keine Hürde mehr, aber es erhöht die Datenmenge und macht den Text im Editor nicht gerade besser lesbar und wenn da dann einer drin rumfrickelt der das nicht beachtet kanns ganz schnell böse enden.

    Gruß Mümmel





  • Hi Mümmel,

    TAB-getrenntes hat aber auch seine Tücken. Erwischst Du einen Editor der
    TABs automatisch in Blanks umsetzt war's das.

    Excel als Editor ist nicht so eine gute Idee. Es liest ja csv nicht mal
    sauber ein (Browser-Plugin mit ';', Windows-Excel nimmt ein ',' oder umgekehrt).

    Wenn ich wissen will ob jemand an der Datei herumgestrickt hat, könnte man einen
    MD5 im Dateinamen hinterlegen (zeigt aber nur an das geladen und gespeichert
    wurde, nicht ob wirklich geändert wurde).

    Was sind das für Daten und Programme ? Steuerung ?



  • Hi Scheppertreiber,

    irgendwo gibts immer Grenzen, aber wenn der Editor Tabs automatisch in Leerzeichen umsetzt, dann ist das wenigstens problemlos zu merken. Dann ist eben die ganze Datei Schrott und muß neu erzeugt werden.

    Für Tabgetrennten Text bietet sich immer noch Editor an. Der macht nichts kaputt und ist bei Win dabei.

    Gruß Mümmel



  • muemmel schrieb:

    irgendwo gibts immer Grenzen, aber wenn der Editor Tabs automatisch in Leerzeichen umsetzt, dann ist das wenigstens problemlos zu merken. Dann ist eben die ganze Datei Schrott und muß neu erzeugt werden.

    Für Tabgetrennten Text bietet sich immer noch Editor an. Der macht nichts kaputt und ist bei Win dabei.

    Was meinst du wie schnell ein Kunde mal ein paar Leerzeichen rein macht, anstatt nem Tab...das Programm funktioniert garnicht richtig...und wieder ein Manntag mit Fehlersuche verplempert.



  • Hi,

    stimmt, daran hatte ich nicht gedacht, aber damit kann man leben.
    Muß man eben in einem ersten Testlauf zählen, ob in jeder Zeile die vorgesehene Anzahl Tabs drinne sind und wenn nicht die Datei als kaputtgeändert zurückweisen. Wenn man dem Kunden dann noch was gutes tun will, kann man ihn ja darauf hinweisen, worans gelegen hat.

    Gruß Mümmel



  • KenntIhrKunden? schrieb:

    Was meinst du wie schnell ein Kunde mal ein paar Leerzeichen rein macht, anstatt nem Tab...das Programm funktioniert garnicht richtig...und wieder ein Manntag mit Fehlersuche verplempert.

    Den kann ich nur zustimmen.

    Als ich mal in der QS gearbeitet hatte, war auch das erste was ich versucht habe, wie man das Format über die Oberfläche auseinander nehmen kann. Dies passiert nunmal recht schnell beim Kunden.

    In dem Fall war es ein Semikolongetrenntes Format, und spätestens wenn ein Freitextfeld auf der Maske ist, wird es auch nicht sinnvoll sein die Eingabe von Semikolons zu verbieten. Gut letztendlich wurde es tatsächlich so gemacht, anstatt das man mit Freigabezeichen und ähnlichen gearbeitet hat.

    cu André



  • Mal ne blöde Frage: kann Excel denn mit CSV Dateien umgehen die eine "Header" haben? Wenn nicht scheidet das IMO schonmal aus.

    Und wäre es denn schlimm Dateien zu machen die man eben NICHT in Excel aufmachen kann, sondern einfach mir einem normalen Text-Editor bearbeitet?
    In dem Fall könnte man immernoch CSV nehmen. Strings kann man dann ja einfach unter " setzen, und entweder "" oder \" verwenden wenn in einem String ein " vorkommen soll.



  • Wie kommst du eigentlich auf die Idee ein anderes Dateiformat zu brauchen? Hat dein Chef das nicht mit den Kunden besprochen was die wollen?



  • hustbaer schrieb:

    Mal ne blöde Frage: kann Excel denn mit CSV Dateien umgehen die eine "Header" haben? Wenn nicht scheidet das IMO schonmal aus.

    Ja, Excel kann mit CSV Datei umgehen und CSV bedeutet übrigens auch nicht zwanghaft mit , getrennt sondern mit einem x beliebigen Zeichen - auch wenn der Name vom , kommt.

    Und wäre es denn schlimm Dateien zu machen die man eben NICHT in Excel aufmachen kann, sondern einfach mir einem normalen Text-Editor bearbeitet?

    Excel bietet halt eine Menge automatische Weiterverarbeitungen an. Man kann es leicht überarbeiten/anpassen und dann zB nach Access übernehmen, Grafische Auswertung machen, etc. Die komplette Office Welt steht dann jedem Laien zur Verfügung.

    Das ist ein essentieller Vorteil den man nicht untersch#tzen sollte.



  • Vergiß Excel. Da werden die Daten beim Einlesen wild interpretiert und meistens
    ein hanebüchener Unsinn angezeigt (erkennt in einer Spalte in Datum und dann
    wird konvertiert was das Zeugs hält).

    Für einen BWLer mag das reichen ...



  • Scheppertreiber schrieb:

    Vergiß Excel. Da werden die Daten beim Einlesen wild interpretiert und meistens
    ein hanebüchener Unsinn angezeigt (erkennt in einer Spalte in Datum und dann
    wird konvertiert was das Zeugs hält).

    Oder man sagt Excel welches Format welche Spalte hat und schaltet somit die Autoerkennung aus...



  • Shade Of Mine schrieb:

    Scheppertreiber schrieb:

    Vergiß Excel. Da werden die Daten beim Einlesen wild interpretiert und meistens
    ein hanebüchener Unsinn angezeigt (erkennt in einer Spalte in Datum und dann
    wird konvertiert was das Zeugs hält).

    Oder man sagt Excel welches Format welche Spalte hat und schaltet somit die Autoerkennung aus...

    Was der Kunde 1. weiß und 2. auch macht.

    So etwas würde ich mir nicht ans Bein binden ...



  • Scheppertreiber schrieb:

    Was der Kunde 1. weiß und 2. auch macht.

    So etwas würde ich mir nicht ans Bein binden ...

    Wenn der Kunde Excel nicht bedienen kann, dann ist Excel nicht die richtige Zielplattform.

    Die Frage ist: was kann der Kunde bedienen? Excel ist bei den meisten Leuten noch halbwegs brauchbar. Ein Texteditor dagegen - na ich weiss nicht. Wie macht jemand der Excel nicht verwenden kann aus einer Textdatei etwas dass er weiter verwenden kann?

    Man sollte die Leute nicht unterschätzen - Excel/Access sind Tools mit denen viele Leute umgehen können und damit sinnvolle Analysen, etc. machen...



  • Shade Of Mine schrieb:

    hustbaer schrieb:

    Mal ne blöde Frage: kann Excel denn mit CSV Dateien umgehen die eine "Header" haben? Wenn nicht scheidet das IMO schonmal aus.

    Ja, Excel kann mit CSV Datei umgehen und CSV bedeutet übrigens auch nicht zwanghaft mit , getrennt sondern mit einem x beliebigen Zeichen - auch wenn der Name vom , kommt.

    Du scheinst nicht aufzupassen. Ich weiss dass Excel CSV Dateien lesen & schreiben kann. Die Frage ist: kann man Excel irgendwie verklickern dass es z.B. die ersten 5 Zeilen in so einer Datei ignorieren soll, weil dort eine HEADER steht?


Log in to reply