Announcement

Collapse
No announcement yet.

String-Array ???

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • String-Array ???

    Hallo,

    möglicherweise eine blöde Frage. Läßt sich aus dem Stringtype char ein Array bilden ? Ich meine ein Array mit einem Index für jedes Element. Also ungefähr so. char strx[20][5]. In der ersten Einklammerung steht die Zeichenanzahl (=20), in der zweiten der Index (hier max. 5). Wenn so etwas nicht geht, wie läßt sich dann umsetzen: string(1)="1111", string(2)=2222", ...

    MfG
    Norbert

  • #2
    Hi Norbert!<br>

    Mit einer TStringList.<br>
    Deine Werte bringst Du in AnsiString.Value unter.<br>

    Gruß Fre

    Comment


    • #3
      Auch mit char strx[20][5] ist das möglich. Aber mit der TStringlist ist das wesentlich einfacher.

      Die Klasse TStringList beinhaltet die Klasse Strings. Also kannst du

      TStringList *liste=new TStringList();

      liste->Clear();//Alles löschen

      liste->Sorted = true; //Einträge werden sortiert

      int anzahl=liste->Count; //Gibt die Anzahl der Einträge zurück

      liste->Strings->add("erster Wert");

      String test=liste->Strings[0]; //ersten Eintrag aus der Liste holen

      delete liste; //wenn liste nicht mehr gebraucht wir
      Christian

      Comment


      • #4
        Fred und Christian - Danke für Euere Antworten.

        >>Auch mit char strx[20][5] ist das möglich.
        Diese Lösung wäre mir lieber, da ich ich Klassen vermeiden möchte. Ich habe ein Anwendungsbeispiel für meine Nicht-C-DLL geschrieben. Das Beispiel soll möglicht für alle C-Compiler gelten. Ohne MFC mit WINAPI. Mit API-Mitteln habe ich eine Combobox kreiert, die über API gefüllt werden muß - funktioniert auch. Nur leider kann ich dafür keine Schleife verwenden, weil ich zuvor die Texte nicht in ein Stringarry (char) bekomme. Vielleicht kannst Du, Christian, mir noch einmal ein Beispiel geben.

        MfG
        Norber

        Comment


        • #5
          Naja, zu deiner ursprünglichen Frage war das schon das Beispiel:

          char test[20][5];

          Damit hast du dein gewünschtes 2-dimensionales Array
          Christian

          Comment


          • #6
            Sorry, aber so einfach scheint es nicht zu funktionieren.
            Sicher wird hier ein zweidimensionales Array angelegt. Nur wo bringe ich einen Index bzw. einen Zähler unter. Bzw. wie soll ich das Array mit Zeichenketten belegen.
            Gedacht war es so.
            strx[20][1] = "....";
            strx[20][2] = "....";
            usw.
            Doch da meckert der Compiler. Hast Du einen anderen Vorschlag ?

            Gruß
            Norbert

            t leider nicht wie ich mir da

            Comment


            • #7
              Okay, der Groschen ist gefallen.

              char strx[2][5] = {{"123\0"},{"456\0"}} ;

              MessageBox( NULL, strx[0], "MB_ICONSTOP", MB_ICONSTOP ) ;
              MessageBox( NULL, strx[1], "MB_ICONSTOP", MB_ICONSTOP ) ;

              Nochmal Danke !!!

              Norber

              Comment


              • #8
                Für sortierte Key-Value-Paare bietet sich der Containertyp map an,
                der Bestandteil der Standard-C++-Bibliothek (früher Standard-Template-Library) ist. Dort findet man auch eine Reihe anderer mächtiger Containertypen wie list, set, vector

                Comment

                Working...
                X