Gibts keinen Array mit unbekannter Größe?



  • Hallo,

    ich bin jetzt mit meinem Tutorial durch die Arrays durch und vermisse eine Version eines Arrays wo man vorher die Größe nicht kennt.
    Ich hatte das in Delphi so machen müssen weis sich die Dateigröße immer änderte. Deswegen wusste ich nicht wieviele Einträge ich brauchte.
    Nur in C++ scheint es sowas nicht zu geben oder ?

    Also mal als Bsp:

    Man habe eine Datei die sich jeden Monat ändert und darin steht folgenses:

    01 EDDP Leipzig 12.43 51.24 465
    02 EDAQ Halle-Oppin 12.44 51.34 365
    .
    .
    .

    usw ... sagen wir 12000 Einträge hatte die immer so etwa.

    Nun musste ich die Daten ja auch verwenden. Also hab ich mir einen Record ( struct ) gemacht.

    type
      TApRecord = record
        szICAO : string[4];
        szName : string[50];
        iAlt   : integer;
        rLat   : real;
        rLon   : real;
      end;
    var
      aApRecord : array of TAirportRecord;  // das hier meine ich !!
    
    // irgendwo im Programm
      SetLength(aApRecord, i+1);  // Also die jetzige Größe + 1
    // wird dann die Länge des Arrays immer um 1 erhöht.
    
    // hier wird dann ein Wert zugewiesen:
     aApRecord[i].szICAO := szAp;
    

    Ich hoffe iHr kommt damit zrecht und wisst worauf ich hinaus will ?

    MAtthias

    Sorry das ich hier immer mal mit Delphi komme, aber ich hab das vorher gemacht und will jetzt C++ lernen.



  • Entweder das cli:array oder z.B. den std::vector , wobei ich mit cli:array noch nicht viel gemacht habe.

    Zielt Deine Frage auf .Net oder generell auf C++ ab ?



  • Hallo,

    naja eigentlich schon auf .NET weil ich ja daruaf hinarbeite.
    Auf der anderen Seite lerne ich gerad alles was mit C++ zu tun hat und versuche es in mich aufzusaugen 🙂

    Matthias



  • - OFF TOPIC START-
    Das sieht aus, als wölltest du einen FMC programmieren? Schreibst du dir was für X-Plane?
    - OFF TOPIC ENDE-



  • Hallo,

    nee, hatnix mit X-Plane zu tun.
    Wird ein Routenplaner für den FSX.

    Das beantwortet aber leider meine Frage nicht.

    Matthias



  • Das macht man i.d.R: mit Collections oder Generics...

    System::Collections::Generic::List<int> ^listeMitInts;
      listeMitInts = gcnew System::Collections::Generic::List<int>();
      listeMitInts->Add(12);
      System::Console::WriteLine(listeMitInts->Count);
    

    Du kannst auch eine Typedef dafür machen... oder ableiten...

    typedef System::Collections::Generic::List<int> tIntList;
    

    Und dann noch Stack-Semantic:

    tIntList iList;
      iList.Add(13);
    


  • Hallöchen...

    ok, IntList hab ich schonmal gehört ( wiedermal vom Delphi ) ...muss dann aber mal noch warten bis ich mit meinem Tut so weit bin :p

    Danke trotzdem
    Matthias


Anmelden zum Antworten