Problem beim Datei einlesen und speichern



  • Hallo zusammen,
    ich habe ein Problem. Ich muß ein Datenfile mit in etwa folgender Struktur einlesen:

    3206.0,327.0,250.0,248.0,33.0,15.0,15.0
    3222.0,342.0,266.0,262.0,44.0,27.0,27.0
    3240.0,359.0,283.0,280.0,56.0,40.0,42.0
    3260.0,379.0,303.0,299.0,71.0,55.0,47.0
    3283.0,400.0,324.0,320.0,89.0,72.0
    3307.0,422.0,345.0,343.0,103.0,90.0
    3334.0,447.0,370.0,368.0,122.0
    3362.0,471.0,396.0,393.0,143.0
    3392.0,498.0,423.0,421.0
    3469.0,545.0,480.0,480.0
    3551.0,598.0,542.0,548.0
    3641.0,657.0,608.0,613.0
    3737.0,724.0,681.0
    3831.0,779.0,756.0
    3936.0,850.0
    4021.0,918.0
    4119.0
    4426.0

    Einträge können natürlich je nach betrachtetem Element (xenon, Argon, etc.) variieren (das sind Bindungsenergien). Das File hat aber immer in etwa den Charakter einer Dreiecksmatrix.
    Die Daten müssen in ein 2-dimensionales Array gespeichert werden.
    Das Ergebnis soll also in etwa so aussehen:
    a[0][1] = 3206.0, a[0][2] = 327.0 ...
    a[1][1] = 3222.0. a[1][2] = 342.0 ...
    ......

    Also erster Index -> Zeilen, zweiter -> Spalten.

    Ich habe versucht mit getline() die entsprechenden Zeilen einzulesen, funktioniert auch soweit. Das Aufschneiden des Strings habe ich mit strtok() gemacht. Allerdings funktioniert das Schreiben in das Array nicht.
    Ich weiß aber absolut nicht, woran es liegt. Das Programm bricht einfach an einer beliebigen, zufälligen Stelle ab.
    Ist zwar eigentlich ein relativ triviales Problem, aber ich weiß nicht mehr weiter.

    Würde mich über jeden Hinweis(Code) sehr freuen.
    Vielen Dank im voraus.



  • Versuchs mal so:

    typedef vectorstd::string Zeile
    vector<Zeile > ZeilenSammlung;

    Nun liest Du eine Zeile ein und zerlegst diese in Zeile.
    Wenn DU das gemacht hast schiebst Du diese Zeile in ZeilenSammlung rein und weiter gehts.

    Du kannst mit .push_back Elemente anhängen und mit .size() die größe organisieren.

    Der Zugriff lässt sich dann auch mit ZeilenSammlung[0][1] realisieren.



  • hab ich gemacht und noch einwenig probiert. funktioniert jetzt.
    thx


Anmelden zum Antworten