zeilmann Posted May 22, 2015 Report Share Posted May 22, 2015 Boa tarde, tenho um richtextbox com 600 linhas. Preciso por gentiliza saber como capturar o texto da linha 489 por exemplo. Desde já agradeço a ajuda. Obrigado Link to comment Share on other sites More sharing options...
apocsantos Posted May 22, 2015 Report Share Posted May 22, 2015 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 More sharing options...
zeilmann Posted May 22, 2015 Author Report Share Posted May 22, 2015 Obrigado, mas preciso do código para VB6. 😞 Link to comment Share on other sites More sharing options...
apocsantos Posted May 22, 2015 Report Share Posted May 22, 2015 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 More sharing options...
vikcch Posted June 2, 2015 Report Share Posted June 2, 2015 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now