String in ein Array umwandeln?



  • Hallo ich lese eine Textdatei folgendermaßen ein:

    private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) 
    		 {
    
    				String^ fileName = "hallo.txt";
    				FileStream^ fs = nullptr;
    				StreamReader^ sr = nullptr;
    				try
    				{
    					fs = gcnew FileStream(fileName, FileMode::Open);
    					sr = gcnew StreamReader(fs);
    					while(sr->Peek() != -1)
    					{
    						test1->Text = test1->Text + sr->ReadLine();
    
    					}
    				} 
    				catch(Exception^ e) 
    				{
    					MessageBox::Show("Fehler beim Lesen der Datei!\r\n\r\n" + e->Message, 
    					"Benutzer-Info", MessageBoxButtons::OK,MessageBoxIcon::Exclamation);
    				} 
    				finally 
    				{
    					if(sr)
    					sr->Close();
    				}
    
    		}
    

    in der Textdatei steht: "hallo; 32; 32; 42; 24;"
    Dies wird in der Textbox "test1" auch so angezeigt.
    Ich habe noch 5 andere Textboxen und wenn ich auf "Start" klicke, soll "test1" durch ; getrennt werden und die werte in die boxen verschoben werden also textbox1 ist hallo, textbox2 ist 32 usw.
    Ich habe den Inhalt der Textbox ausgelesen und in einen String gespeichert:
    datei = Convert::ToString(test1->Text);

    Jetzt will ich den String "datei" in ein Feld der Größe 5 schreiben und die Textboxen sollen sich dann die Werte vom Feld holen.
    Wie kann ich also einen String bei ";" trennen und die Werte in ein Array schreiben?



  • Mit einer Schleife

    Wieso willst du einen Array benutzen? Nimm doch einen Vektor vom Typen String.

    std::vector<string> vektor;  // braucht #include <vector>
    
    string element;
    for(int i=0; i<datei.length(); ++i) {
        if(datei[i]==";") {
           vektor.push_back(element);
           element.clear();
        else {
           element.push_back(datei[i]);
        }
    }
    

    Damit sind die Werte als unter vektor[0]...vektor[4] verfügbar.



  • Benutze System::String::Split(...) . Vom Code von bruhial würde ich absehen, da es sich dabei um C++ (ISO) handelt. Dein Code ist allerdings C++/CLI. Diese Sprache wurde zwar genau (und eeigentlich nur) dafür gemacht nativen- mit .NET Code zu verbinden, bietet aber sehr viel Fallstricke - vorallem für Anfänger. Kurz, es ist keine gute Idee, damit Programmieren lernen zu wollen.



  • theta schrieb:

    Dein Code ist allerdings C++/CLI.

    Das habe ich wohl übersehen. 😮


Anmelden zum Antworten