Frage zu ArrayList



  • typedef System::Collections::Generic::List<int> MyTList;

    soll doch sicher

    typedef System::Collections::Generic::List<CTester^> MyTList;

    heißen oder liege ich da falsch ?

    Genau genommen mein Jochen:

    typedef System::Collections::Generic::List<T> MyTList;
    

    Nicht jedes Beispiel ist exakt auf Deine Anforderungen zugeschnitten. (Falls noch nicht bekannt: Einem Template werden Typen übergeben, welche sind grob gesehen egal für das Template, es erfüllt mit int, CTester oder mit T genau den gleichen Zweck).

    Wo wäre denn der Unterschied von der Textdatei zur dat Datei ? Eventuell wäre es Sinvoller die Daten in eine Datenbank zu packen. Damit lassen sich leichter Auswertungen machen und Du kannst ADO.Net anwenden.

    Für den Import bietet sich dann ggf. eine extra Applikation an, die die Daten parst und in die Datenbank einfügt.



  • Hallo,

    also ist

    System::Collections::Generic::List
    

    ein Template wenn ich das jetzt richtig verstanden habe oder ?
    Templates sind bekannt.

    Nicht jedes Beispiel ist exakt auf Deine Anforderungen zugeschnitten.

    Das bringt mich manchmal ganz schön durcheinander. Ich kann manchmal ( noch hoffe ich ) nicht die richtigen Rückschlüsse aus Euren Beispielen ziehen.
    Das muss ich wohl noch lernen.

    ADO.NET ist ( da bin ich mir sicher ) ein guter Vorschlag, aber ich glaube da bin ich absolut noch nicht so weit 🙂

    Ich dachte mir eigentlich erst mal die TextDatei mit den Wegpunktdaten in eine Datendatei umzuwandeln damit nicht jeder drin herumwurschteln kann.
    Danach die Datei im Programm laden, aber als was ?
    Was ist da günstig, ein Array, ein Vector .. was nimmt man da am besten ?

    Sind nicht eigentlich auch einfache Strukturen prädistiniert dafür einfache Daten aufzunehmen ?
    An den Daten wird ja im Programm selber nichts verändert.

    Hmmm

    Matthias



  • STF-DIR schrieb:

    ein Template wenn ich das jetzt richtig verstanden habe oder ?

    Nein, ein Generic. Der Unterschied zum Template ist (im Wesentlichen), dass Generics bei ihrer Definition bereits in Bytecode übersetzt werden, Templates aber erst bei ihrer Benutzung (Instanzierung). Ausserdem sind Templates in einigen Belangen flexibler, aber wartungsunfreundlicher.



  • Hallo,

    ok, das Kapitel mit Collections kommt als nächste in meinem Büchlein, dann werd cih mal weiterlesen.

    Dank Euch allen !

    Matthias



  • Ich dachte mir eigentlich erst mal die TextDatei mit den Wegpunktdaten in eine >Datendatei umzuwandeln damit nicht jeder drin herumwurschteln kann.

    Hm, da ist der Mehraufwand zu hoch. Nimm die Datei wie sie kommt. IMHO machst es Dir mit der .dat einfach schwerer. (Einfach umbenennen ist wohl nicht gemeint und umbasteln der Daten macht es Dir unnötig schwer)

    Templates aber erst bei ihrer Benutzung (Instanzierung).

    Templates werden eigentlich beim Compilieren aufgelöst. Bei der Instanziierung existiert IMHO kein Template mehr.



  • Knuddlbaer schrieb:

    Templates werden eigentlich beim Compilieren aufgelöst. Bei der Instanziierung existiert IMHO kein Template mehr.

    Vollkommen richtig. Ich hätte wohl sagen sollen "Bei Templates werden erst konkrete Instanzen in Bytecode übersetzt" 😉



  • Jup, schon klar, wollte es für den Threadersteller erwähnt haben bevors wieder chaos gibt 😃 🤡



  • Hallo,

    ok Ihr sagt also die txt Datei so lassen.
    Mit so einer einzelnen Zeile einlesen ist es aber später mam nicht getan.
    Hier mal der Ablauf : ( wp = wegpunkt , kein cpp code)

    SPA,Z98 ,001,BADJA,-32.033056, 117.522222, 0, 75,B,B

    1. Aufsplitten
    wp->Land = spa,
    wp->Airway = Z98,
    wp->Nr = 001,
    wp->Name = Badja,
    wp->Lat = -32.033056,
    wp->lon = 117.522222,
    wp->hdgfrom = 0, // Kurs from
    wp->hdgto = 75, // Kurs to
    wp->awhight = b // Luftstraßeneinteilung

    wp->Typ = ??? // Wird aus einer anderen Datei geholt

    So, das als erstes mal und dann geht es aber noch weiter.
    Das blöde an den Wegpunkten ist aber das es Bamki z.B. einmal hier in Leipzig gibtg und nochmal irgendwo anders.
    Der Unterschied zwischen beiden ist natürlich lat und lon.
    Später soll das Programm ja mal einen Flugplan erstellen.
    Das heißt ich brauche für den A* Algorythmus eine Start und Zielnode.
    Weil es aber die Wegpunktnamen mehrmals gibt muss das Zusammengesetzt werden.
    Also Bamki_12.2233_51.2323 z.B. Das funktioniert nur so, hab ich ja schon so gemacht und funktionierte perfekt.

    Dann müssen ja noch Entfernungen Berechnet werden usw. Da muss also noch so einiges gemacht werden mit den Daten.
    - Ständig nach Wegpunkten in einem bestimmten Radius suchen
    - Daten als OpenGL darstellen
    usw.

    Deswegen dachte ich eine Datendatei wäre schneller eingelesen.
    Damals in ( sorry dafür und bitte keine Diskusionen darüber ) "Delphi" hab ich einen Record gemacht und in dem extra Programm die TestDatei als Record abgespeichert. Diese *.dat Datei konnte man dann in "einem Rutsch" komplett einlesen.
    Das ging rasend schnell.
    Das war der Grund für die Frage.

    Muss ich also , nach euren Aussagen, diesen Umweg gar nicht mehr gehen ?

    Wäre ja ein riesen Vorteil von C++ !!

    Matthias



  • Naja, durch vorenthalten von Informationen wirst Du nicht auf das Ergebniss kommen was Du haben willst.

    Mit reinem Argument, der Anwender soll in den Daten nicht einfach per Texteditor was ändern sollen ist ein völlig anderer Standpunkt wie: Der Parser wird aufwendig.

    Letzendlich bleibt es Dir überlassen was Du machen willst, nur Du kennst die genaue Anforderung und musst die Vor und Nachteile abwegen.

    Generell musst Du aber so oder so eine Routine schreiben, die die Textzeilen auswertet, denn in die .dat Datei muss es ja erst einmal gebracht werden.

    Denke Dir also den Parser durch und prüfe dabei, ob der Gewinn das konvertiert einzulesen den Aufwand der Konvertierung lohnt.

    Kurz:
    Du kommst ums Zeilen lesen so oder so nicht herum (annahme: Du kannst das Rohformat der Daten nicht beeinflussen die Du geliefert bekommst).

    Das vorgehen ist unabhängig der Programmiersprache, die Implemeniterung und Details unterscheiden sich lediglich.



  • Hallo,

    das Rohdatenformat kan ich nicht ändern.
    Ja, um das Zeilenweise einlesen komm ich sowieso nicht herum

    Ich werd das genau so machen und testen was besser ist, alles in einem Programm mit den Rohdaten so wie sie sind oder extra ein kleines Programm welches die Daten nur ins Binäre umwandelt.

    Das bring außerdem noch den gewünschten Lerneffekt 🙂

    Danke Euch
    Matthias


Anmelden zum Antworten