Tìm kiếm find trong winform C++

Em có đoạn code như sau:

private: System::Void btnStart_Click(System::Object^  sender, System::EventArgs^  e)
{
    int index =0;
    String^ kod("CIRC");
    String^ temp=richTextBox1->Text;
    richTextBox1->Text = "";
    richTextBox1->Text = temp;
    while (index < richTextBox1->Text->LastIndexOf(kod))
    {
        richTextBox1->Find(kod, index, richTextBox1->TextLength, RichTextBoxFinds::None);
        index = richTextBox1->Text->IndexOf(kod, index) +1;
    }
}

Đoạn này sẽ tìm kiếm. Nếu em để vòng while chạy thì nó sẽ tìm kiếm từ đầu đên cuối. Nếu em k dùng while và k cho index +1 thì nó tìm từ đầu tiên. Nhưng em muốn cả từ cuối cùng. Mọi người giúp em với!

1 Like

Nghĩa là sao @Thanh_Chu anh chưa hiểu lắm. Em có thể cho một ví được không?

Tức là em cần tìm từ xuất hiện đầu tiên và cuối cùng ấy anh

Em làm xong rùi, up code lên cho mọi người tham khảo (chú ý đến hàm LastIndexOf()):

            int index2 =0;

           String^ kod("CIRC");

           String^ temp=richTextBox1->Text;

           //richTextBox1->Text ="";

           //richTextBox1->Text = temp;
           index2 =richTextBox1->Text->LastIndexOf(kod);
           {
richTextBox1->Find(kod,index2, richTextBox1->TextLength, RichTextBoxFinds::None);
                          {
richTextBox1->Text=richTextBox1->Text->Insert(richTextBox1->SelectionStart,txtapp->Text);
                           }}
           richTextBox1->SelectionBackColor =Color::Yellow;
           MessageBox::Show("Done!");
           }
     }

Cảm ơn @Thanh_Chu đã update solution sau khi làm xong nhé. Nhưng anh có một góp ý là em không sử dụng markdown để format code nên code trông rất xấu.

Nó trông thế này:

Nếu anh dùng markdown sẽ lại nó sẽ trông như bây giờ. Anh đã sửa lại bài của em.

Em ms tham gia diễn đàn, nên em có biết mấy cái anh nói đâu :(. EM cư up lên xong lại thấy có người sửa lại chứ em cũng không biết mấy cái đó.

1 Like

Markdown là cái này:

Rất dễ sử dụng :smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?