Daten speichern in Stuktur



  • Seit ich angefangen habe zu Programmieren ( vor kurzem 😉 ).

    habe ich immer wieder ein Problem bei dem ich keine 100% Lösung habe.

    Ich möchte Strukturierte Daten dynamisch zwischenspeichern.

    Bsp.
    Ich möchte prüfen was für Laufwerke ein System hat und Daten zu den gefunden Laufwerken in einer Variablen abspeichern. ( Ohne Einsatz einer DB )

    Zu lesen sind z.B. ImageIndex und Pfad.

    Nun weiß ich ja nicht wie viele Laufwerke vorhanden sind.

    Ich habe das bei meinem letzten Projekt folgendermaßen gelöst:
    Ich habe eine Struktur geschrieben :

    Bsp:
    struct LWStruktur
    {
    	AnsiString Pfad;
    	int ImageIndex;
    };
    

    Die steht im Header, genau wie die Vereinbarung der Zeigervariablen :

    LWStruktur *sLaufwerk;
    

    Im Konstruktor meiner Klasse habe ich meine Struktur dann erstellt :

    sLaufwerk = new LWStruktur[Nr];
    

    "Nr" ist dabei die Dynamische Größe, also ein integer.

    gelöscht habe ich im Destruktor

    delete (sLaufwerk)

    dummerweise gibt es PC´s bei denen das Programm an dieser Stelle hängen bleibt.
    Außerdem ist das wohl eher ein Workaround und nicht ganz sauber.

    Daher die Frage wie speichert Ihr derartige Stukturen ?
    Ich komm einfach nicht drauf 😞
    Und meine Lösungen haben alle immer einen Haken

    Struktur -> muss statisch festeglegt werden
    StringList -> muss ich die Daten Kommasepariert in den String legen und hinterher wieder zerlegen
    ListView -> ist ja eigentlich eine Visuelle Komponente und nicht dafür gedacht 🙂

    Gibt es denn keinen Typ der in einem Eintrag mehrere Daten speichern und verwalten kann ?

    Sry wenn ich auf dem Schlauch stehe - ab evtl. könnt Ihr mir runter helfen 😉

    CU
    T



  • Hallo

    dummerweise gibt es PC´s bei denen das Programm an dieser Stelle hängen bleibt.

    Das kann aber nicht am gezeigten Code alleine liegen, der ist soweit in Ordnung

    Außerdem ist das wohl eher ein Workaround und nicht ganz sauber.

    Das einzige was Verbesserungswürdig wäre ist die Verwendung vom C-Array. Mit einem std::vector würdest du einen Container bekommen der die Speicherverwaltung übernimmt. Außerdem würde ich dem struct noch einen Default- und einen Parameterkonstruktor geben der gleich alle Daten übernimmt. Das wären die einzigen Veränderung die ich machen würde.

    bis bald
    akari



  • Danke für die Info - werde den Windowsrechner nochmal überprüfen, der is aber ansonsten I.O.

    Sobald ich das delete auskommentiere, beendet sich das programm Ordentlich.

    Ich werde nochmal weiter Suchen.

    CU
    Torsten Ortleb


Anmelden zum Antworten