Autor
|
Tema: contar saltos de linea RichTextBox VB (Leído 12,949 veces)
|
Carlosnuel
Desconectado
Mensajes: 527
https://www.quobit.mx/
|
Hola estoy haciendo un proyecto para la escuela el cual consiste en abrir un documento de texto contar los saltos de linea y cortar el documento ejemplo #de lineas maximo por hoja = 25# numero de lineas del documento = 100Total de paginas generadas = 100/25 = 4todo esto lo estoy manejando por medio de un richtextbox pero al momento de realizar la búsqueda no funciona mi código llevo toda la tarde y no encuentro solución podrían ayudarme Dim sText, sFnd Dim lPos Dim cont As Integer
cont = 1 sText = RichTextBox1.Text sFnd = vbCrLf 'Texto buscado (salto de linea).
'pretendo ir avanzando por el texto para hacer una comparacion 'buscando el salto de linea While Len(RichTextBox1.Text) > cont
lPos = InStr(1, sText, sFnd) If lPos > 0 Then 'Se encontró la cadena
call MsgBox("La cadena se encontró en la posición " & lPos, vbExclamation) ' estos msgbox son temporales, después los sustituiré por la continuación del programa Else call MsgBox("No se encontró la cadena") End If cont = cont + 1 Wend
el problema que tengo es que no puedo moverme entre todos los caracteres que hay en el richtexbox1 para buscar los saltos de linea ojala puedan ayudarme
|
|
« Última modificación: 4 Abril 2007, 03:44 am por -Charles- »
|
En línea
|
|
|
|
Syphroot
Desconectado
Mensajes: 268
All You Need To Do Is Follow The Worms
|
El problema al parecer esta en la primer linea dentro del bucle while: lPos = InStr(1, sText, sFnd)
el primer argumento ponle tu contador "cont", ya que es la posicion en la va a empezar a buscar las coincidencias lPos = InStr(cont, sText, sFnd)
asi en cada iteración el contador incrementa y busca en la siguiente posición...
|
|
|
En línea
|
|
|
|
Carlosnuel
Desconectado
Mensajes: 527
https://www.quobit.mx/
|
gracias por el consejo... pero lo he implementado de la siguiente forma (con un ciclo FOR) y funciona pero por ejemplo si tengo en el espacio 3 un salto de linea, en el espacio 5 otro y en el 7 otro, lo que hace mi programa es que se detiene en el espacio 3 e imprime como 20 veces que esta en el espacio 3 y asi para el 5 y 7 este es el codigo ayudenme porfavor Dim sText, sFnd Dim lPos Dim cont As Integer
cont = 1 'Texto en el cual se va a buscar, puede ser un cuadro de texto o cualquier String. sText = RichTextBox1.Text sFnd = vbCrLf 'Texto buscado.
NumText = Len(RichTextBox1.Text) For i = 1 To NumText lPos = InStr(i, sText, sFnd) If lPos > 0 Then Call MsgBox("La cadena se encontró en la posición " & lPos, vbExclamation) Else Call MsgBox("No se encontró la cadena") End If 'cont = cont + 1 Next i
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
creo que el problema es el contador "i" si tienes un salto de linea en la posicion 3 al entrar al ciclo te va a mandar 3 veces el mensaje. lo que debes hacer es mover tu contador al encontar un salto de linea, tú código quedaría asi: Dim sText, sFnd Dim lPos Dim cont As Integer
cont = 1 'Texto en el cual se va a buscar, puede ser un cuadro de texto o cualquier String. sText = RichTextBox1.Text sFnd = vbCrLf 'Texto buscado.
NumText = Len(RichTextBox1.Text) For i = 1 To NumText lPos = InStr(i, sText, sFnd) If lPos > 0 Then Call MsgBox("La cadena se encontró en la posición " & lPos, vbExclamation)
'Aqui mueves "i" despues del salto de linea encontrado i = lpos+2
Else Call MsgBox("No se encontró la cadena") End If 'cont = cont + 1 Next i
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
Carlosnuel
Desconectado
Mensajes: 527
https://www.quobit.mx/
|
hay si funciona T.T
Celaya eres mi nuevo dios en Visual Basic...
gracias por el consejo
oye una pregunta
porque i = lpos + 2
no entiendo porque lo incrementas 2 veces
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
el salto de linea se compone de dos partes:
vb cr lf Fin de Salto de linea linea
cuando usas la función InStr te va a devolver la posición del fin de linea, en esta caso 3, lo incremento en dos para que sigua el bucle despues del fin de linea(cr, posición 3) y el salto de linea(lf, posición 4) y continue en el siguiente caracter de la cadena (posición 5)
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Se pueden hacer saltos de linea en las variables?
Desarrollo Web
|
Ori-chan
|
4
|
2,638
|
28 Febrero 2013, 17:24 pm
por 1mpuls0
|
|
|
Función fread y saltos de línea
Programación C/C++
|
NathanD
|
8
|
6,019
|
20 Marzo 2013, 20:25 pm
por NathanD
|
|
|
Echo sin saltos de linea en Windows
Scripting
|
WHK
|
4
|
6,888
|
13 Mayo 2013, 18:02 pm
por WHK
|
|
|
Saltos de linea en PHP.
PHP
|
Akise
|
2
|
2,148
|
25 Junio 2013, 03:33 am
por Akise
|
|
|
[Pregunta]: Contar saltos de lineas de una cadena (PHP)
PHP
|
Leguim
|
4
|
7,784
|
4 Diciembre 2019, 16:14 pm
por Leguim
|
|