Jump to content

Capturar texto Richtextbox


zeilmann
 Share

Recommended Posts

Boa noite,

Fazes bem isso com um ciclo for each

Dim i As Int32 = 0
Dim linha489 As String

For Each str As String In RichTextBox1.Lines
 i = i+1
 If (i=489) Then linha489 = RichTextBox1.Lines[i]
 Else
 End If
Next

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

Boa noite,

Podes usar parecido usando o contador para a condição que te valida o número da linha.

Em VB6, não me recordo de ter feito isto... Na altura do VB6 eu usava mais Delphi, mas não precisei de procurar muito para encontrar um snipet que me ajuda-se a tentar fazer algo que resolve-se esta questão. Se bem que o meu VB6 está com imensa "ferrugem".

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lparam As Any) As Long
Private Const EM_GETLINECOUNT As Long = &HBA
Dim auxarr() as String
Dim linecount As Long
Dim index As Long
Dim str489 as String
Private Sub Botton1_Click()
linecount = SendMessage(RichTextBox1.hwnd, _ EM_GETLINECOUNT, 0, 0)
End Sub
auxarr = Split(RichTextBox1.Text, vbCrLf)
For i = 0 to linecount
If i = 489 Then
str489 = auxarr(i)
Else
Next
'Baseado no contador de linhas disponível em: http://www.vbforums.com/showthread.php?526203-RESOLVED-count-rich-textbox-line-number
 

Não testei o código, não tenho como testar. De qualquer forma fica a tentativa, apesar de estar com a ideia que existe forma mais eficiente de fazer isto.

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

se ainda precisares fica aqui um codigo sem API's

Option Explicit

Private Sub Command1_Click()

   Dim myResult As String

   If tryGetTextFromRtbLine(6, Me.RichTextBox1, myResult) Then
    MsgBox myResult
   Else
    MsgBox "Linha não existente", vbExclamation
   End If

End Sub


Public Function tryGetTextFromRtbLine(ByVal nrLine As Long, ByVal rtb As RichTextBox, ByRef out As String) As Boolean

   Dim allLines() As String

   allLines = Split(rtb.Text, vbCrLf)

   If nrLine > 0 And nrLine - 1 <= UBound(allLines) Then
    out = allLines(nrLine - 1)
    tryGetTextFromRtbLine = True
   End If

End Function

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.