string aus textbox ?



  • Hey Ho alleseits !
    ich versuche nun schon ewig ein einfaches programm zu machen , was mir einen Text (eingegeben in einer Textbox) nach einem bestimmten Zeichen durchsucht und dieses durch ein anderes ersetzt ! hier mein quellcode :

    [code]
    #pragma endregion
    	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    
    String^ bearbeitung = this->textBox1->Text;
    
    int pos;
    String^ charx = System::Convert::ToString(this->textBox2->Text);
    String^ chary = System::Convert::ToString(this->textBox3->Text);
    
    while((pos = bearbeitung.find(charx))!=string::npos)bearbeitung[pos] = chary;
    
    			 }
    

    [/code]

    Der Compiler sagt :
    Fehler 1 error C2228: Links von ".find" muss sich eine Klasse/Struktur/Union befinden.

    was habe ich falsch gemacht ? Ist die variable bearbeitung womöglich garkein string ? Ich habe keine ahnung was dieses ^ macht !

    MfG FedoX



  • Bitte die Grundlagen durcharbeiten.

    Das eine ist ein std::string, das andere ein System::String - das sind zwei völlig verschiedene Typen.

    System::String::IndexOf, Replace etc. kann Dir helfen. Details siehe MSDN



  • Jo danke !
    nun bekomme ich ein anderes Problem (Ich habe versucht alles neu zu programmieren)

    String^ bearbeitung1 = this->textBox1->Text;
    
    int i;
    Char^ charx = System::Convert::ToChar(this->textBox3->Text);
    Char^ chary = System::Convert::ToChar(this->textBox3->Text);
    
    array<Char>^bearbeitung = bearbeitung1->ToCharArray();
    
    while(bearbeitung[i] != 0)
    {
    	if(bearbeitung[i] == charx)
    		bearbeitung[i] = chary;
    }
    
    textBox1->Text = bearbeitung;
    

    Der Fehler ist :

    Fehler 1 error C2446: '==': Keine Konvertierung von 'System::Char ^' in 'int'

    und

    Fehler 2 error C2040: '==': 'int' unterscheidet sich von 'System::Char ^' in Bezug auf die Anzahl vorgenommener Dereferenzierungen c

    ich verstehs einfach nicht ?!

    MfG Simmmon



  • Hallo

    Warum so kompliziert?

    String ^teststring;
    teststring=textBox1->Text->Replace("v","w");
    label1->Text = teststring;
    

    Damit werden alle vorkommen von v in w umgewandelt.

    Hoffe das es das ist was du brauchst.

    Viel Spass noch.



  • hey hey
    vielen herzlichen Dank ! klappt alles 🙂


Anmelden zum Antworten