tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von Bratkartoffel
  • 1 Beitrag von Bratkartoffel
  • 1 Beitrag von Bratkartoffel
ERLEDIGT
JA
ANTWORTEN
12
ZUGRIFFE
637
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Thomasio Thomasio ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    680
    Ich versuche krampfhaft meiner Anwendung eine config.ini oder config.dat zu geben, wo eine Menge von Einstellungen und Daten aus der Anwendung gespeichert werden sollen.
    Das kann ein Stück Text sein, oder eine Zahl, oder auch ein ganzes struct oder ein vector von structs.

    Damit ich nun nicht die Daten immer in derselben Reihenfolge haben muss, weil sich das ja später noch ändern könnte, bzw. weitere Sachen dazu kommen könnten, will ich jedem Eintrag eine Codenummer oder sowas verpassen.
    Ich weiss, wie ich das Ganze lösen kann, wenn die Daten als Text gespeichert werden, ich weiss auch, wie ich binäre Daten schreiben und lesen kann, aber ich weiss nicht, ob und wie ich beides in einer Datei mischen kann.

    Beispiel:

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    wstring MyText = L"Irgendwas";
    int MyValue = 17;
    LOGFONT MyFont = {....};
    COLORREF MyColor = RGB(0,0,0);
    vector<MyStruct>MyVector;
     
    // usw. usw.

    In der config.dat sollte also z.B. stehen:

    1 MyText
    2 MyFont
    3 MyVector
    usw.

    Natürlich braucht das Ganze Trennzeichen, die im Inhalt nicht vorkommen, Leerstellen und Zeilenumbrüche eigenen sich dafür nicht, aber wie macht man binäre Trennzeichen?

    Mein grösstes Problem ist aber, wie schreibt und liest man das, so dass vorher und hinterher dieselben Daten in denselben Variablen stehen?
    Ich bin für jeden Vorschlag dankbar, auch wenn jemand eine Idee hat, die völlig anders aussieht als mein Ansatz.
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi

    ein Trennzeichen, das sonst nicht vorkommen kann, gibts nicht.
    Wie wäre es, am Anfang eines Binärteils einfach die Länge abzuspeichern?
    Als Binäre Zahl.
    Wenn aus dem Confignamen nicht eindeutig herausgeht, ob es Binär oder nicht ist,
    eben noch eine 0/1, B(inär)/T(ext) oder so dazu.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    Avatar von Jennesta
    Jennesta Jennesta ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Aachen
    Beiträge
    215
    Hi,
    eine andere Möglichkeit wäre vielleicht noch, wenn du dir den Aufbau von generellen .ini-Files ansiehst und es vielleicht anpasst oder sogar übernimmst. Unter Windows kannst du diese auch ganz einfach auslesen. Unter anderen Systemen sollte dies auch relativ einfach gehen.

    Grüße
     
    Was soll daran kompliziert sein? Es muss doch nur ein Rad bewegt werden, man kann aufsteigen, es kommt die Matschhütte und durch den Regenbogen gelangst du zum hungrigen Affen, der Affenschwanz wird gezogen und bums kommst du zum Paradispark.

  4. #4
    Thomasio Thomasio ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    680
    Soll mir alles Recht sein, von mir aus kann in der config sonstwas stehen.

    code | typ | länge | daten
    code | typ | länge | daten

    Ich weiss sogar, dass ich dann beim Schreiben und Lesen mit einem Pointer arbeiten muss.
    Aber wie?
     

  5. #5
    Avatar von Jennesta
    Jennesta Jennesta ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Aachen
    Beiträge
    215
    Mal 2 Links.
    substr & find

    oder wie ich schon erwähnte:
    mit .ini-File
     
    Was soll daran kompliziert sein? Es muss doch nur ein Rad bewegt werden, man kann aufsteigen, es kommt die Matschhütte und durch den Regenbogen gelangst du zum hungrigen Affen, der Affenschwanz wird gezogen und bums kommst du zum Paradispark.

  6. #6
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    für Binäredaten in einer Konfigurationsdatei hab ich mir mal ne Bibliothek für bencoded-Strings implementiert. Den Source kannst du dir hier anschauen. (Abhängige Bibliothek für Strings die ihre Länge kennen)

    Vom Prinzip her besteht meine Konfigurationsdatei aus einem Dictionary und da drin dann meine ganzen Schlüssel- und Wert-Paare. Die Dokumentation zum Schema kannst du dir hier mal genauer anschauen.

    Die Bibliotheken von mir sind allerdings nicht allzu gut dokumentiert, wennst die verwenden willst und Fragen dazu hast, nur raus damit

    Gruß,
    BK

    // Edit: Ok, ich seh grad die Doku is quasi nicht vorhanden. Werde das nochmal überarbeiten und komplettieren und dann eine neue Version hochladen.
    Geändert von Bratkartoffel (08.02.12 um 17:26 Uhr)
    Thomasio bedankt sich. 
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  7. #7
    Thomasio Thomasio ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    680
    Hui, das sieht gut aus, werde ich mir gleich mal zu Gemüte führen, danke.
     

  8. #8
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    hab mal das gröbste jetzt Dokumentiert in dem Header, mit einem SVN Update solltest die neueste, dokumentierte Version bekommen.

    Der Rest folgt dann die nächsten Tage.

    Gruß,
    BK
    Thomasio bedankt sich. 
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  9. #9
    Thomasio Thomasio ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    680
    DankeDanke.
     

  10. #10
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    gibts zu dem Thema was neues? Wie kommst du mit der Bibliothek zurecht?
    Bin in letzter Zeit ziemlich eingespannt mit Arbeit, deshalb komme ich wohl nicht so schnell dazu die Doku fertig zu machen...

    Grüße,
    BK
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  11. #11
    Thomasio Thomasio ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    680
    Ich habe mir die source runtergeladen und ein bisschen herumprobiert.
    Soweit ich das bis jetzt sehe, funktioniert das prima.
    Allerdings komme ich im Moment auch nicht viel dazu, weil ich noch 3 andere Projekte in Arbeit habe.
     

  12. #12
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    auch wenn das Thema schon als erledigt markiert wurde, ich habe meine Bibliotheken nun endlich fertig überarbeitet und Version 0.3.0 released:

    https://svn.wf-hosting.de/libmystrin...release-0.3.0/
    https://svn.wf-hosting.de/libbencode...release-0.3.0/

    Habe die Header besser kommentiert und die Sourcen ein wenig aufgeräumt und teilweise auch aufgeteilt. Da sich ein paar Funktionsnamen geändert haben (durchgängig benannt), kann es sein dass du deine Sourcen auch etwas überarbeiten musst. Getestet habe ich diese zwar schon, kann aber sein dass sich noch der eine oder andere Bug da drin befindet.

    Grüße,
    BK
    Thomasio bedankt sich. 
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  13. #13
    Thomasio Thomasio ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    680
    Ganz vielen Dank.
    Ich bin voll im Stress mit anderen Sachen, aber ich komme definitiv darauf zurück.
     

Ähnliche Themen

  1. Binäre Suche Java
    Von Saban im Forum Java
    Antworten: 13
    Letzter Beitrag: 25.02.09, 15:59
  2. Binäre Suche
    Von cuchulainn im Forum Algorithmen & Datenstrukturen mit Java
    Antworten: 8
    Letzter Beitrag: 14.07.08, 22:52
  3. Binäre Verarbeitung
    Von meilon im Forum PHP
    Antworten: 3
    Letzter Beitrag: 11.05.05, 18:15
  4. binäre Suche
    Von djroque im Forum Java
    Antworten: 4
    Letzter Beitrag: 15.01.05, 16:06
  5. Binäre suche
    Von kle-ben im Forum Visual Basic 6.0
    Antworten: 9
    Letzter Beitrag: 22.12.04, 08:08