Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: agus0 en 19 Diciembre 2009, 00:30 AM

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:

Citar
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

Código (vb) [Seleccionar]

' 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

Código (vb) [Seleccionar]


'
'   /////////////////////////////////////////////////////////////
'   // 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...

Código (vb) [Seleccionar]


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
Cita de: 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





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Җ▓▒░