Título: [Resuelto] Como Crear un programa que "identifique cada linea de un textbox"???
Publicado por: agus0 en 19 Diciembre 2009, 00:30 am
Hola, como andan? Bueno... Mi duda es la siguiente Como podria hacer un programa que, por ejemplo yo tuviera un textbox multilinea que diga: hola como andas agus0 foro.elhacker.net
y un Boton que al apretarlo, salga un textbox que diga, "hola", despues uno que diga "como" a continuacion de este "andas" y despues "agus0" y asi sucesivamente. Espero que me allan entendido, Gracias; ;D Felices fiestas y Prospero año nuevo ;D
Título: Re: [Ayuda] Como Crear un programa que "identifique cada linea de un textbox"???
Publicado por: Hasseds en 19 Diciembre 2009, 01:07 am
Private Sub Command1_Click() Dim s() As String: s = Split(Text1, vbNewLine) Dim x As Integer: For x = 0 To UBound(s) - 1: MsgBox s(x): Next x End Sub
Título: Re: [Ayuda] Como Crear un programa que "identifique cada linea de un textbox"???
Publicado por: agus0 en 19 Diciembre 2009, 01:20 am
No se me ocurrio ;D ;D ;D
pero una duda
por q el bucle se come la ultima palabra???
por el -1
Título: Re: [Resuelto] Como Crear un programa que "identifique cada linea de un textbox"???
Publicado por: Hasseds en 19 Diciembre 2009, 01:24 am
UBound(s) - 1
Título: Re: [Resuelto] Como Crear un programa que "identifique cada linea de un textbox"???
Publicado por: BlackZeroX en 19 Diciembre 2009, 06:28 am
' API de Windows SendMessage '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Const EM_GETLINECOUNT = &HBA Const EM_LINEFROMCHAR = &HC9 Const EM_LINELENGTH = &HC1 Const EM_LINEINDEX = &HBB
Con esto lo puedes hacer Aquí un ejemplo http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/40.htm P.D.: Te andaba haciendo una funcion mejor que la del link pero al correrla se me crasheo y no tenia nada guardado asi que estodo lo que te pouedo dejar. Dulces Lunas!¡
Título: Re: [Resuelto] Como Crear un programa que "identifique cada linea de un textbox"???
Publicado por: BlackZeroX en 19 Diciembre 2009, 07:10 am
En un Modulo de Clase clsTexboX.cls ' ' ///////////////////////////////////////////////////////////// ' // Web: http://InfrAngeluX.Sytes.Net/ // ' // // ' // |-> Pueden Distribuir Este Codigo siempre y cuando // ' // no se eliminen los creditos originales de este codigo // ' // No importando que sea modificado/editado o engrandesido // ' // o achicado, si es en base a este codigo es requerido // ' // el agradacimiento al autor. // ' ///////////////////////////////////////////////////////////// Option Explicit Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const EM_GETLINE = &HC4 Private Const EM_GETLINECOUNT = &HBA Private Const EM_LINEFROMCHAR = &HC9 Private Const EM_LINEINDEX = &HBB Private Const EM_LINELENGTH = &HC1 Private vhwnd As Long Public Property Get Textbox_hwnd() As Long: Textbox_hwnd = vhwnd: End Property Public Property Let Textbox_hwnd(vData As Long): vhwnd = vData: End Property Public Function LineCount() As Long LineCount = SendMessage(vhwnd, EM_GETLINECOUNT, 0&, 0&) End Function Public Function LineLen(CharPos As Long) LineLen = SendMessage(vhwnd, EM_LINELENGTH, CharPos, 0&) End Function Public Function GetLineFromChar(CharPos As Long) As Long GetLineFromChar = SendMessage(vhwnd, EM_LINEFROMCHAR, CharPos, 0&) End Function Public Function GetCharFromLine(LineIndex As Long) If LineIndex < LineCount Then GetCharFromLine = SendMessage(vhwnd, EM_LINEINDEX, LineIndex, 0&) End Function Public Function GetLineStr(LineIndex As Long) As String Dim StrArray() As Byte Dim lngLineLen As Long If Not LineIndex >= LineCount Then lngLineLen = LineLen(GetCharFromLine(LineIndex)) If Not lngLineLen < 1 Then ReDim StrArray(lngLineLen + 1) StrArray(0) = lngLineLen And 255 StrArray(1) = lngLineLen \ 256 SendMessage vhwnd, EM_GETLINE, LineIndex, StrArray(0) GetLineStr = Left$(StrConv(StrArray, vbUnicode), lngLineLen) End If End If End Function
En un Formulario... Private Sub Form_Load() Dim ct As clsTexboX Dim i As Long Set ct = New clsTexboX With Text1 .Text = "Clase By HTTP://InfrAngeluX.Sytes.Net/" & vbCrLf & _ "Miguel" & vbCrLf & _ "Angel" & vbCrLf & _ "Ortega" & vbCrLf & _ "Avila" & vbCrLf & _ "Alias" & vbCrLf & _ "BlackZeroX" End With With ct .Textbox_hwnd = Text1.hwnd For i = 0 To .LineCount - 1 MsgBox .GetLineStr(i) Next i End With End Sub
Dulces Lunas!¡
Título: Re: [Ayuda] Como Crear un programa que "identifique cada linea de un textbox"???
Publicado por: Hasseds en 19 Diciembre 2009, 23:12 pm
Private Sub Command1_Click() Dim s() As String: s = Split(Text1, vbNewLine) Dim x As Integer: For x = 0 To UBound(s) - 1: MsgBox s(x): Next x End Sub
Un split y un for son suficientes.
Título: Re: [Resuelto] Como Crear un programa que "identifique cada linea de un textbox"???
Publicado por: seba123neo en 19 Diciembre 2009, 23:24 pm
si, la verdad depende lo que uno quiere hacer, pero creo que para lo que quiere le alcanza el split y el for, lo de la api es para algo mas avanzado como un editor de texto o algo parecido, si tenes miles de lineas la api es mucho mas rapida.
Título: Re: [Resuelto] Como Crear un programa que "identifique cada linea de un textbox"???
Publicado por: agus0 en 20 Diciembre 2009, 00:27 am
A mi con la respuesta de Hasseds me alcanso, G R A C I A S .
Aunque voy a tener en cuenta lo de la API, Gracias ░▒▓BlackZeroҖ▓▒░
|