C++ wyszukaj i wytnij

D.

Użytkownik
Dołączył
Październik 22, 2003
Posty
6
Odbieram wiadomość przez Socket->ReceiveText(), następnie chce pobrać jakąś (np 6 znaków) początkową część i jeżeli ta część to np xxxxxx to wytnij i przekaż do np. Edit1->Text = costam; a reszte pozostaw i do Edit2->Text = wiadomosc;. Jak to zrobić? PS. Mile widziany jakiś przykład -łatwiej zrozumiec.
 
G

Guest

Gość
Originally posted by D.
Odbieram wiadomość przez Socket->ReceiveText(), następnie chce pobrać jakąś (np 6 znaków) początkową część i jeżeli ta część to np xxxxxx to wytnij i przekaż do np. Edit1->Text = costam; a reszte pozostaw i do Edit2->Text = wiadomosc;. Jak to zrobić? PS. Mile widziany jakiś przykład -łatwiej zrozumiec.

mozesz uzyc tablic, to znaczy zadeklarowac odebrany text jaka tablice znakow.

char TABLICA[];

caly text odebrany text przypisz tej tablicy, np.:

TABLICA[] = Socket->ReceiveText();

pozniej za pomoca wskaznikow odwolaj sie do pierwszych 6 znakow tablicy ( TABLICA[0], TABLICA[1], ....., TABLICA[5]) i przekaz je do obektu Edit1, a pozostale elementy tablicy do Edit2.
 

art88

Użytkownik
Dołączył
Luty 17, 2003
Posty
13
Napisze Ci w c++

//ile znakow chcesz wyciac
int wordCount = 6;

//pobranie całego tekstu
String allText = Socket->ReceiveText();

//Najpierw sprawdzimy czy tekst ma wymagana ilosc znakow. Jezeli nie ma to wszystko wpiszemy to Edit1
if(allText.Length() <= wordCount) {
Edit1->Text = allText;
}
else {
//Pierwsze znaki do Edit1
Edit1->Text = allText.SubString(1, wordCount);
//Reszta do Edit2
Edit2->Text = allText.SubString(wordCount, allText.Length() - wordCount);
}



Można to napisać w 2 linijkach, ale tak bedzie Ci łatwiej zrozumiec.
A rozwiazanie z tablicą charów jest w tym przypadku błądne.

pozdr.
 
Do góry Bottom