Odczytanie znaku z textBox

0

Witam
Mam takie pytanie, jak odnieść się do dowolnego znaku zapisane w textBox/richTextBox. Wydaje mi się, że powinienem jakoś to powiązać z tym, że jest to tablica char, ale to tylko moje przypuszczenie.
I drugie powiązane z tym zagadnienie - jak podmieniać pojedyncze znaki?
Chodzi mi o Visual C++

Pozdrawiam
Piotrek

PS: Nie daje kodu, bo i tek nie działa.

0

Tekst w TextBox jest zapisany jako string, jak i również w RichTextBox też. string to zbiór char'ów i odwołujesz się do nich jak do tablicy operatorem []. Przykład:

textBox1.Text[49]; // odwołanie się do 50. znaku w tekście

Do operacji na string'ach służy StringBuilder.

0
label1->Text=textBox1->Text;
label2->Text=textBox1->Text[1];

No więc coś takiego miałem (wnioski moje z C++ strukturalnego), ale nie działa. A wstawienie kropki wyrzuca błąd i pyta czy miałem na myśli "->"...

1

Acha Więc to C++, ale to dużo nie zmienia i tak piszesz pod .NET'a. Jak chcesz przypisać jakąś literę to:

label1->Text = textBox1->Text[0]; // przypisuje pierwszy znak

Jak chcesz manipulować dowolnie tekstem, to użyj klasy StringBuilder. Tam się odwołujesz i zmieniasz poszczególne znaki jak w string'ach z czystego C++:

StringBuilder^ sb = gcnew StringBuilder(textBox1.Text);

sb[0] = 'a'; // zmienia pierwszy znak na 'a'
0

No niby fajnie, ale to nie działa...

Skopiowałem tą linię i mam taki fragment kodu:

	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
				 label1->Text=textBox1->Text;
				 label1->Text = textBox1->Text[0];
			 } 

A wyrzuca następujący błąd:
''cannot convert parameter 1 from 'wchar_t' to 'System::String ^'
1> No user-defined-conversion operator available, or
1> No standard conversion exists from the boxed form of the arithmetic type to the target type''

1
 label1->Text = textBox1->Text[0];

no bo to jest próba przypisania do Stringa pojedynczego znaku wchar_t.

label1->Text = textBox1->Text.Substring(0,1);
0
label1->Text=textBox1->Text[0].ToString();
  • jakby ktoś szukał to działa taki zapis

W końcu się udało.
Bardzo dziękuję za pomoc :)

Chyba do zamknięcia.

0

Szukam od 40 minut funkcji na zmianę String na Integer? Znalazłem Asc, AscW, atoi ToInteger(), ale nic nie chce działać. Ewentualnie gdzie dodać biblioteki do tego.

Daleko wcale nie trzeba szukać:
http://msdn.microsoft.com/en-us/library/system.convert.aspx#Y80
http://msdn.microsoft.com/en-us/library/system.int32.aspx

0
System::Int32 x=textBox1->Text.ToInt32(); 

albo

 System::Int32 x=ToInt32(textBox1->Text);

Ale żaden z tych zapisów nie pozwala mi odpalić programu.

0

Zastanów się nad sobą. Klasa Convert ma statyczną metodę ToInt32, a nie System::String
W Managed C++ nie pisałem. Domyślam się, że to będzie jakoś tak:

Convert::ToInt32(textBox1->Text);

1 użytkowników online, w tym zalogowanych: 0, gości: 1