Podria alguien decirme como puedo contar las lineas de un textbox multiline sin tener que utilizar la API de windows
gracias
Podria alguien decirme como puedo contar las lineas de un textbox multiline sin tener que utilizar la API de windows
gracias
Cuando dices cortar significa usar diversas variables para contener el texto o bien que en el textbox no aparezca la barra de desplazamiento y salte de linea?
-a la segunda no te respondo por lo evidente que es.
-a la primera te dire que tienes diversas opciones:
la primera es seleccionar el texto y ir asignando el texto selecionado a variables (muy lioso)
la otra mas simple es leer todo en una variables y luego usar un bucle para leer. Lo del bucle puedes hacerlo de diversas maneras:
*la primera es haciendo un corte por longitud fija
*la segunda es leyendo letra a letra y cortar en saltos de linea (VbCrLf), tabuladores,....
existen otras posibilidades, pero como no se que es lo que quieres exactamente..... Feliz navidad.
Hola,
Supongo que lo que quiere es contar las líneas que hay escritas en un textbox multiline (supongo, eh? )
En ese caso usa mid para ir viendo caracter a caracter el texto y si el caracter leído es un vbCrLf incrementas en uno el contador que tengas.
Un Saludo!
gracias por las respuesta pero lo de vbCrLf no me vale, ya ke cuando escribes en el textbox y llegas al final salta de linea automaticamente sin insertar o presionas tu el retorno de carro por lo que no puedo detectar el cambio de linea
Se puedo hacer con la API de windows pero yo quiero si utilizarla
olper
tienes razón olper, de todas maneras le daré algunas vueltas más : ) . Una pregunta, como lo puedes hacer con la API?
Gracias y Un Saludo!
-- al día siguiente...
Encontré para hacerlo con la API pero no tiene much gracia la verdad...
'Módulo
Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'fin de módulo
Private Sub txtText_Change()
Dim nLineas As Long
nLineas = SendMessageLong(txtText.hwnd, &HBA, 0&, 0& )
print nLineas;
End Sub
Ahora a ver la manera de hacerlo sin la API xD
Un saludo!
Última edición por krego; 28-12-2003 a las 12:21
Sin api supongo que serías así, perdonad los falos pero es que estoy escribiendo a pelo ya que no estoy en mi casa...
Private sub boton_click()
for x = 1 to len(text1)
s = mid(text1, x, 1)
if s = vbcrlf then
z = z + 1
end if
doEvents
next x
msgbox "Hay: " & z & " líneas", vbinformation, "Pos eso..."
End sub
Espero que te sirva, y que funcione, xD
Saludos.
lei un poco mal, no? los saltos de linea de k hablas no lo son. Prueba a grabar el texto y lo veras. solo con saber la cantidad de letras por lineas y contar el total de letras hecho. eso no te salvara de buscar VBCRLF.
Esa forma d ehacerlo seria demasiado lento, ademas, el TextBox salta la linea de forma automatica ...
La forma mas sim'ple que se me ocurre es que cuentes el numero de caracterres que entran en una linea de tu TextBox y lo dividas por el numero de caracteres totales sepranado posteriormente las cadenas correspodnientes.
No se si sera la forma mas elegante de hacerlo, pero sin tocar la API es lo unico que se me ocurre, y esta claro que la otra forma de hacerlo lo unico que va a conseguir es que tu programa sea lentisimo en cuanto tenga que analizar un texto un poco mas largo de lo normal
Marcadores