Diskuze: Funkce najít další

C# .NET .NET (C# a Visual Basic) Funkce najít další American English version English version

Avatar
matesax
Redaktor
Avatar
matesax:

Dobrý den,
vymyslel jsem to takto:

if (this.richTextBox1.Text.Contains(j))
           {
               this.ri.Text = this.richTextBox1.Text;
               this.richTextBox1.Select(this.ri.Find(j), j.Length);
               this.ri.Select(this.ri.Find(j), j.Length);

               if (this.ri.SelectedText[0] != 'k')
                   this.ri.SelectedText = "k" + this.ri.SelectedText.Substring(1, this.ri.SelectedText.Length - 1);
               else
                   this.ri.SelectedText = "9" + this.ri.SelectedText.Substring(1, this.ri.SelectedText.Length - 1);
           }

Ale nějak mi to nefunguje - co byste - nebo jak byste to udělali Vy? Děkuji. :)

 
Odpovědět 16.7.2012 17:35
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

K najít další bych použil indexOf, můžeš mu zadat jako druhý parametr současnou pozici +1 a on bude hledat další výskyt.

Nahoru Odpovědět 16.7.2012 18:14
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

Tak nějak nevím co s tím - jak to použít? A to string value - první parametr - to má být jaký string? Druhý je tam popsán dobře - start int. Když to použiji jen tak - pod všemi událostmi - aby se mi již vybraný text nezahrnoval do dalšího hledání. Děkuji.

 
Nahoru Odpovědět 16.7.2012 19:47
Avatar
matesax
Redaktor
Avatar
Odpovídá na matesax
matesax:

dokončení věty :) :

do dalšího hledání, tak to nic neudělá,...

 
Nahoru Odpovědět 16.7.2012 19:48
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

Koukám, že to find má mnoho přetížení: http://msdn.microsoft.com/…ary/aa254576

Použij tu třetí variantu a máš vystaráno :)

Nahoru Odpovědět 16.7.2012 21:08
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

No jo ale mě to pak místo stringu v prvním parametru chce char[],...

 
Nahoru Odpovědět 16.7.2012 22:13
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

A co máš v té proměnné ri vůbec?

Nahoru Odpovědět 17.7.2012 0:09
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

Druhý tichtextbox - abych neměnil nic v zobrazovaném textboxu - index ale nic nemění, takže ro něj jej nepotřebuji,...

 
Nahoru Odpovědět 17.7.2012 5:54
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

Vyřešeno!!! :)

public void Search(string j)
       {
           if (this.richTextBox1.Text.Substring(this.kde + 1).Contains(j))
           {
               this.kde = this.richTextBox1.Find(j, this.kde + 1, RichTextBoxFinds.MatchCase);
               this.richTextBox1.Select(this.kde, j.Length);
           }
       }

Děkuji...

 
Nahoru Odpovědět 17.7.2012 6:27
Avatar
matesax
Redaktor
Avatar
Odpovídá na matesax
matesax:

Upraveno:

 if (this.richTextBox1.Text.Substring(this.kde + 1).Contains(j) && j != "")
{
    this.kde = this.richTextBox1.Find(j, this.kde + 1, RichTextBoxFinds.MatchCase);
    this.richTextBox1.Select(this.kde, j.Length);
}
else
{
    this.kde = -1;
    MessageBox.Show("Buďto nebyly nalezeny žádné výsledky, nebo žádné další.", "Nenalezeno");
}
 
Nahoru Odpovědět 17.7.2012 6:32
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.