Programación General > Visual Basic 6.0 e inferiores

 Separar Textbox Linea Por Linea

<< < (3/4) > >>

Brroz:
Hola.

Prueba con la función así:

--- Código: Text --- Public Function ImprimirXLinea(qControl As TextBox) As String     Const EM_GETLINECOUNT = &HBA    Const EM_LINEINDEX = &HBB    Const EM_LINELENGTH = &HC1     Dim lLinesCount As Long, lFirstChr As Long, lLineLen As Long    lLinesCount = SendMessage(qControl.hwnd, EM_GETLINECOUNT, 0&, 0&)     Dim sTextoI As String    sTextoI = Replace(qControl.Text, vbCrLf, &#34;&#34;)        Dim lIdx As Long, iIni As Integer    iIni = 1    For lIdx = 0 To lLinesCount - 1        lFirstChr = SendMessage(qControl.hwnd, EM_LINEINDEX, lIdx, 0&) + iIni        lLineLen = SendMessage(qControl.hwnd, EM_LINELENGTH, lFirstChr, 0&)        ImprimirXLinea = ImprimirXLinea & Left(sTextoI, lLineLen) & &#34;&#092;n&#34;        sTextoI = Mid(sTextoI, lLineLen + 1)        iIni = 0    Next lIdx End Function  
Chao.

darkasecas:
'chas gracias brroz funcionno perfecto ,me has salvado la vida!!

ebolo:
Hola de nuevo.
Brroz una cosilla he probado la función y, si no me he equivocado usándola, el resultado final es el mismo que con el Iif...........,¿no? o hay alguna diferencia que no haya visto, a parte de la "/".
Lo pregunto por aprender siempre cosas nuevas.

Saludos.

Makko:
Esto tb me sirvio a mi para aprender. Gracias!
Nos vemos gente...!
Saludos.

Brroz:
Verás ebolo...

En un principio yo tampoco me dí cuenta del detalle, pero el 'if' puede fallar porque en un textbox multiline, puede haber líneas que no acaben con retorno de carro y nueva línea: si escribiendo en el textbox llegas al final de la línea, automáticamente sigues escribiendo en la siguiente, y sin haber añadido un cr+lf. Osea, tienes una nueva línea que no podrías localizar ya que el texto no incluye en esa posición el correspondiente salto. De ahí que necesites enviar mensajes al control para obtener el número de líneas y donde empiezan.

Espero haberme explicado bien.

Chao.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa