tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
2841
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Bennily Bennily ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    32
    Kann mir mal einer Tips geben wie ich am besten Daten in eine .dat Datei speichere und dann später wieder aufrufe und vorallem ausfiltere und in Arrays/Variablen lade.

    Also Beispiel ich will Namen und Adressen von 2 Menschen in einer Datei speichern und später bei einem erneuten Programmstart auch wieder afurufen, ausfiltern, und in Variablen oder Arrays bekommen.

    Was für Techniken setzt ihr für sowas ein?
     

  2. #2
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Ich setze iostreams ein. Was ist eine .dat-Datei?
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  3. #3
    Bennily Bennily ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    32
    Was ist ein Iostream?
     

  4. #4
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Das sind Klassen, die bei C++ die Ein- und Ausgabe von und auf beispielsweise Dateien steuern. In C verwendet man stattdessen Filefunktionen wie fopen(), fprintf() usw.

    Folgender Schnipsel würde zum Beispiel meinen Nickname in eine Datei schreiben:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    #include <fstream>
    int main()
    {
      using namespace std;
      
      ofstream of( "meine_datei.txt" ); // ofstream = Datei-Ausgabe-Strom
      of << "Kachelator";
      
      return 0;
    }
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  5. #5
    Avatar von Carndret
    Carndret Carndret ist offline Mitglied Platin
    Registriert seit
    Apr 2001
    Ort
    Schaffhausen
    Beiträge
    546
    iostream ist nur eine Klasse siehe MSDN Library . Und mit deiner .dat Datei meintest du wahrscheinlich einfach nur irgendeine Datei in der deine Daten gespeichert werden. Ob die nun .dat heißt oder .bmp oder .lol ist egal haupsache du liest die Daten so aus wie du sie reingeschrieben hast. Wie die Endung heißt ist dir überlassen.

    Edit: mmh eine Minute zu spät
     

  6. #6
    Bennily Bennily ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    32
    Ich glaube ich hab mich nicht ganz richtig ausgedrückt.
    Ich weis wie cih Dateien Öffne/Schließe und in Dateien schreibe/auslese.,

    Aber was bringt mir ein string in dem ich z.B die Adressen von 10 Leuten habe (Das Programm weis nciht wie viele es sind) wenn ich das nicht irgendwie trenen und in Variablen/Arrays bekommen kann?
     

  7. #7
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Dann musst du die Daten in der Datei irgendwie trennen, zum Beispiel mit Kommas.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  8. #8
    Bennily Bennily ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    32
    Auf die Idee bin cih auch schon gekommen.
    Also in PHP würde ich mit ner Kombination von Trennzeichen arbeiten und dann mit explode() rangehen.
    Nur gibts das auch in C/C++?
    Und wie genau arbeitet es da?
     

  9. #9
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Nur gibts das auch in C/C++?
    Nein, es sei denn, dass es eine Library gibt, die das ermöglicht.

    Grundsätzlich hast du ja (vereinfacht gesagt) drei Möglichkeiten, Objekte zu serialisieren:
    1. Binär
    Du klatscht den ganzen Speicher, den dein Objekt im Speicher einnimmt, in eine Binärdatei rein. Mehrer Objekte können getrennt werden, weil jedes Objekt gleichgross ist.
    2. Klartext
    sowas wie:

    [Kunde 0]
    name=Kachelator
    telefon=0123456789
    [Kunde 1]
    name= Bennily
    telefon=333333
    usw.

    3. Datenbankzugriff mit SQL
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  10. #10
    Bennily Bennily ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    32
    Könntest du mir mal nen konkretes Beispiel für die 2te Version geben?
     

  11. #11
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Versuch einfach mal, deine Daten in dieser Form in eine Textdatei zu speichern. Das ist recht einfach. Wenn du das hast, kommt der spannende Teil: Du liest die Datei ein und untersuchst sie zeichenweise, ob von dir verwendete Schlüsselworte auftauchen. In meinem Beispiel wären das "[", "Kunde", "name" und so weiter. Wenn dann eines dieser Worte auftaucht, muss dein Programm entsprechen reagieren: Bei "Kunde" ein neues Kundenobjekt erzeugen, bei "telefon" dem zuletzt erzeugten Kundenobjekt die folgende Telefonnummer zuweisen und so fort.
    Die von mir im Beispiel verwendete Syntax ist natürlich nur eine Beispielsyntax.
    Ich habe übrigens gute Erfahrung mit LUA für diesen Einsatzzweck gemacht, aber das geht wohl über das Thema hinaus.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  12. #12
    Bennily Bennily ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    32
    Vielen Dank, ich glaube so kann ich das schaffen was ich will.

    Aber noch eine Frage: Brauche ich die Umbrüche dafür?
     

  13. #13
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    In meinem Beispiel oben nicht unbedingt, es macht das Ganze auf jeden Fall lesbarer, was man berückisichtigen sollte, da es eine grosse Hilfe beim Debuggen ist. Ich habe in einem grösseren Projekt (Das lief über etwas mehr als zwei Jahre) von vorneherein festgelegt, dass alle Projektdateien in einer ähnlichen gescripteten Form angelegt werden und habe es nicht bereut. Es hat unglaublich viel Zeit beim Debugging und Testing gespart. Erst die endgültigen Daten lagen dann aus Performancegründen in einer eher binären Form auf der Platte.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 01.08.09, 18:12
  2. Antworten: 11
    Letzter Beitrag: 26.01.09, 19:50
  3. Werte in Dateien speichern und wieder auslesen
    Von Crackmaster im Forum C/C++
    Antworten: 12
    Letzter Beitrag: 29.05.07, 08:18
  4. Antworten: 15
    Letzter Beitrag: 17.09.04, 17:34
  5. File in DB speichern und wieder auslesen
    Von daJunior im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 25.06.04, 07:40