Lines aus TextBox in mehrdimensionales (String) Array schreiben



  • Hallo Community,

    ich grüße Euch! Bin neu hier und hoffe auf Hilfe. Hab mich nun schon seit Tagen durch MSDN Hilfeseiten und andere Schriften gequält, aber leider immer verzweifeln müssen.

    Ich bin Umsteiger von C/C++ auf .net mit Forms und muss für die Uni ein kleines Prog erstellen. Das Problem ist wohl eher trivial, aber ich schaffs nicht.

    Es geht darum:
    Ich hab eine kleine Oberfläche mit Visual Studio .net2003 (FormsDesigner) gebastelt, die unter Anderem eine mehrzeilige TextBox enthält. Nun möchte ich die einzelnen Zeilen aus der Textbox in ein mehrdimensionales String Array kopieren. Laut MSDN ginge das so:

    // Create a string array and store the contents of the Lines property.
          string _gc array<String^>^ tempArray = gcnew array<String^>( textBox1->Lines->Length );
          tempArray = textBox1->Lines;
    
          // Loop through the array and send the contents of the array to debug window.
          for ( int counter = 0; counter < tempArray->Length; counter++ )
          {
             System::Diagnostics::Debug::WriteLine( tempArray[ counter ] );
          }
    

    Soweit so gut, aber wenn ich dies als Funktion einfüge, klappt das nicht, weil er das Array oben in erster Zeile so nicht akzeptiert und Syntaxfehler anprangert. Ich habe auch keine Ahnung was das alles heissen soll, z.b

    string _gc array<String> tempArray = gcnew array<String^>

    die ganzen ^ und so weiter verstehe ich nicht.

    kann mir jemand dabei helfen, ein solches mehrdimensionales string array zu deklarieren und dementsrpechend die textbox auszulesen??

    Eine Textbox line für line auszulesen sollte doch eigentlich nicht so schwer sein, oder?????

    bin wirklcih verzweifelt und genervt, weil ich absolut nirgendwo fündig werde...
    😡

    mfg

    William



  • Glaube du vermischt da zwei Sprachen:

    VS.Nez 2003 arbeitet mit Managed C++(.Net 1.1) und der Ausschnitt aus der MSDN sieht eher nach C++/CLI aus wies im .Net Framework 2.0 verwendet wird.



  • Hm, ja ist mir auch schon aufgefallen - da könntest du recht haben. dann wird der compiler das sowieso nicht kennen.

    aber wie kann ich nun unter managed c++ ein simples mehrdimensionales array vom typ string erzeugen?
    den normalen typ string von w32 anwendungen kann man ja nicht benutzen weil ich bei der einbindung des std-namespace fehlermedlungen bekomme. ich weiss echt nicht weiter



  • So geht das dann 😉

    String * strarr[,] = new String*[3,3];
        for(int i = 0; i < 3; ++i)
            for(int j = 0; j < 3; ++j)
                strarr[i,j] = S"Test";
        for(int i = 0; i < 3; ++i)
            for(int j = 0; j < 3; ++j)
                Console::WriteLine(strarr[i,j]);
    


  • evilissimo schrieb:

    So geht das dann 😉

    String * strarr[,] = new String*[3,3];
        for(int i = 0; i < 3; ++i)
            for(int j = 0; j < 3; ++j)
                strarr[i,j] = S"Test";
        for(int i = 0; i < 3; ++i)
            for(int j = 0; j < 3; ++j)
                Console::WriteLine(strarr[i,j]);
    

    oder unter c++/cli

    cli::array<String ^, 2> ^strarr = gcnew cli::array<String ^, 2>(3,3);
        for(int i = 0; i < 3; ++i)
            for(int j = 0; j < 3; ++j)
                strarr[i,j] = L"Test";
        for(int i = 0; i < 3; ++i)
            for(int j = 0; j < 3; ++j)
                Console::WriteLine(strarr[i,j]);
    

Anmelden zum Antworten