Zjištění řádku v RTB   zodpovězená otázka

VB.NET

Ahoj!

Je prosím Vás možné zjistit a případně jak, načíst na základě pozice vyhledávaného znaku

v textu, číslo řádku resp. text v řádku uložit do proměnné .VB NET 2010

Děkuji


Dim c as Integer = 0
Dim text as String =""

        Do While poziceZnaku <> 0
         c = RichtextBox1.Text.IndexOf("T", c + 1) 'zjistí pozici T
        'text = text v celém řádku dle pozice proměnné c  ????
        Loop
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nevím přesně co myslíš, ale na zjištění pozice písmene stačí toto

Dim c As Integer = 0
Dim text As String = ""

For i As Integer = 0 To Len(c)
    c = RichTextBox1.Text.IndexOf("T")
Next
text = c + 1
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Proč rovnou nepoužijete vlastnost Lines

For Each line In RichTextBox1.Lines
            Dim posTonLine As Integer = line.IndexOf("T")
            ...
        Next
nahlásit spamnahlásit spam 0 odpovědětodpovědět

No mě nejde o to najít pouze pozici písmene,tu najít umím,ale jde o to

následně na základě pozice vyhledaného písmene v textu zjistit na kterém řádku se to hledané

písmeno nachází(resp.potřebuji znát obsah toho řádku).Nechce se mi procházet to cyklem For i / Next i , řádek po řádku,protože je možné že text bude mít i několik tisíc řádků(v krajní situaci),ale vyhledávat to může pouze 2...3..nějaké znaky v celém textu,takže zbytečně zdlouhavé!!!

Potřebuji to k vytvoření další podmínky při nahrazení vyhledaného znaku za jiný,ale k tomu potřebuji znát právě obsah celého řádku,ve kterém se ten hledaný znak nachází a s tím dále pracovat.

Omlouvám se, snad jsem to už popsal trochu srozumitělně....

nahlásit spamnahlásit spam 0 odpovědětodpovědět
Dim pos As Integer = Me.RichTextBox1.Text.IndexOf("T")
        Dim startPos As Integer = InStrRev(Me.RichTextBox1.Text, vbLf, pos)
        Dim endPos As Integer = Me.RichTextBox1.Text.IndexOf(vbLf, pos)
        endPos = IIf(endPos < 0, Me.RichTextBox1.Text.Length, endPos)
        Dim row As String = Me.RichTextBox1.Text.Substring(startPos, endPos - startPos)
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Další varianta:

Dim pos As Integer = Me.RichTextBox1.Text.IndexOf("T")
Dim row As String = RichTextBox1.Lines(RichTextBox1.GetLineFromCharIndex(pos))
nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

SUPER.....,to je přesně co jsem potřeboval!!!!

Použil jsem druhou variantu.

Děkuji mnohokrát.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback