Neue Klasse erzeugen mit Varaiblennamen die aus Datei gelesen werden



  • Hallo,

    ja, values verweist ab der Zuweisung immer auf d.Values, und gestattet somit Zugriff auf die Werte im Array m_values.

    MfG,



  • So, der COde funktioniert soweit. Ich arbeite in einer Form.h, in der ich einige Buttons habe, mit dem ich die Ein-Auslesegeschichte der Dateien steuere. Nun habe ich den unteren Teil in die Main() geschrieben. Dort wird dann auch der Filefpad übergeben. Wie kann ich nun aber prüfen, ob alle Variablennamen korekt aus dem File eingelesen wurden? Im Debugger sehe ich dazu nicht sehr viel. Außerdem, kann ich dann das Array ode die Klasse global nutzen, wenn ich z.B. bei einem Button in der Form.h den Klassenvariablen Werte zuweisen möchte? wie kannich das realisieren?
    Bin noch am probieren ...



  • Warum siehst Du im Debugger nicht das was Du sehen möchtest?
    Simon



  • So, habe mir ein Button in der Form.h eingefügt und das Ding simuliert. Zuerst ging auch nichts. Dann hab eich mit die Klasse DoubleValues angesehen. Da sehe ich doch, dass die ganzen Felder der Arrays als double sind. Ich wollte doch aber der Klasse erst mal Variablennamen zuordnen, also Strings. Nichts desto trotz, habe meine Datei die ich einlese abgeändert und double Zahlenwerte reingepackt, eingelesen und in RichTextBox eingegeben, funtioniert. Schon mal etwas ... Schnauf...Schnauf. Aber ich will eine Klasse mit String-Variablen, denen ich dann später Werte zuweise (DoubleValues->Länge = List[1]; ...)
    Und diese Zuweisung soll dann auch automatisch über eine Schleife stattfindne, damit meine Klasse automatisch mit den Rechenwerten gefüllt wird.
    Ich werde nun zuerst mal die Arrays auf String umstellen, und sehen ob ich dann meine Variablennamen drin habe.
    Später dann die Werte der Variablen in ein Array einlesen, und dann irgendwie an die Klasse übergeben. Ach noch was. Wie kann ich denn ein Variable ode ein Array global anlegen?



  • Ach noch was. Wie kann ich denn ein Variable ode ein Array global anlegen?

    Gar nicht. Das gehört sich nicht.

    Da sehe ich doch, dass die ganzen Felder der Arrays als double sind. Ich wollte doch aber der Klasse erst mal Variablennamen zuordnen

    Tja, die Namen sind jetzt halt Indizes geworden.
    Wenn Du eine Zuordnung Name zu Wert brauchst, dann nimm ein Dictionary<...>.

    Simon



  • Also, so ie es aussieht war wohl das ganze ein Verständnisproblem, oder? Es wird also nicht funktionieren, eine Klasse automatisch zu erstellen, so wie ich das vorhabe. Wie gesagt, meine Idee war halt, ein Klassenkonstrukt zu erzeugen, dann die Textvariablen von der textdatei einlesen und die Klasse hat somit ihre internen Klassenvariablennamen. Dann sollten eben die double-werte zugewiesen werden. Somit hätte ich halt immer einen einfachen Zugriff auf die Variablen. Aber ich muß ja die Variablen der Klasse abrufen und setzen können. Da stellt sich dann das Problem mit dem Get() und Set() Befehl. Ich müßte ja dann mit Zeiger arbeiten, falls das funktioniert. Evtl. nehme ich einfach ein Array und trage lese die Werte dann hinein. Das Problem ist halt, dieses Array steht dann nicht in der ganzen Form.h zur Verfügung. Gibts da noch bessere Ansätze? Ansonsten könnte ich die Klasse auch händisch anlegen, wird normal nicht allzuviel verändert werden, aber wie mache ich das dann mit dem Zugriff, mittels einer Funktion?



  • Ja, lege doch dei Klasse an, mit all ihren double variablen.
    Dann liest du eben das file ein und weist den variablen den wert zu.

    Klassen (bzw. Code) zu Laufzeit zu erzeugen ist schon möglich, jedoch denke ich nicht, dass diese Technik hier angebracht ist.

    Simon



  • Mach das doch in C#, oder nicht Simon?

    Gruß



  • Soll das in C# soviel einfacher sein? Gits dazu einen Link? Eigntlich sollte das Projekt schon in C++ sein, habe mich mehr oder weniger auch schon eingearbeitet.

    Gruß
    Moehrle



  • *g*



  • Hallo,

    nach etlichem hin und her habe ich mich entschlossen, einfach eine Klasse zu erzeugen, die alle Variablen als public besitzt und ich dann daruaf zugreifen kann. Ich weiß, ist gefährlich, sollte aber zu einem späteren Zeitpunkt noch andes realisiert werden. Nun habe ich die Klasse angelegt. So, wenn ich jetzt aber die Klasse in der Form.h in veschiedenen Button-Ereignissen verwenden möchte, funktioniert das nicht, da die Klasse nur dort verfügbar ist, wo ich eine Klasse davon erzeuge. Wer weiß Rat, das ich die Klasse überall verwenden kann?



  • Ich denke, Du bringst einige Begriffe durcheinander.
    Informiere dich über Klassen, Instanzen, Objekte, Variablen (Member, Instanz, Klassen), Methoden etc.

    Auf die Schnelle könntest Du mit dem Singleton Pattern arbeiten, welches besagt, dass es von einer Klasse genau 1 Instanz gibt. Auf die kann dann einfach zugeriffen werden. Google danach, Du wirst bestimmt fündig.

    Edit:
    Eigentlich ist es aber immer dasselbe. Du hast letzendlich ein Objekt, auf das andere Objekte zugreifen sollen. Jetzt gibts verschiedene Möglichkeiten das zu realisieren. Via Parameter, Referenzen, Delegaten etc.

    Simon



  • Noch etwas, wenn ich Funktionen festlege. Sind die dann in der Form.h auch nicht mehr global nutzbar, oder wie wird das realisiert? Dann auch über Klassenfunktionen?



  • Informiere dich über Klassen, Instanzen, Objekte, Variablen (Member, Instanz, Klassen), Methoden etc.



  • Hallo, habe das mit der Klasse nochmals überflogen. Habe aber nirgendwo etwas dazu gefunden, wie man das macht, wenn man eine Form.h hat, wie eine Klasse überall zur Verfügugn gestellt werden kann. Gibts da ein Trick? In herkömmlichen C++ binde ich die Headerdatei der Klasse vor der Main()-Routine ein. Dann habe ichdie in der kompletten Main zur Verfügung. Und das ist jetzt eigentlich ein Problem das ich habe. Das scheint wohl auf diese Art und Weise nicht mehr zu funktionieren wenn man ein Projekt mit der Window-Form erstellt. Oder evtl. doch? Finde in meinem beiden Büchern über c++ .Net nichts dazu, und habe heute morgen sonst noch ein wenig rumgesucht.

    Gruß
    Moehrle


Anmelden zum Antworten