| 
	
		|  Autor | Tema: contar saltos de linea RichTextBox VB  (Leído 13,322 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 = 100 Total de paginas generadas = 100/25 =4 todo 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, sFndDim 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, sFndDim 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, sFndDim 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,997 |  28 Febrero 2013, 17:24 pm por 1mpuls0
 |  
						|   |   | Función fread y saltos de línea Programación C/C++
 | NathanD | 8 | 6,538 |  20 Marzo 2013, 20:25 pm por NathanD
 |  
						|   |   | Echo sin saltos de linea en Windows Scripting
 | WHK | 4 | 7,418 |  13 Mayo 2013, 18:02 pm por WHK
 |  
						|   |   | Saltos de linea en PHP. PHP
 | Akise | 2 | 2,489 |  25 Junio 2013, 03:33 am por Akise
 |  
						|   |   | [Pregunta]: Contar saltos de lineas de una cadena (PHP) PHP
 | Leguim | 4 | 9,725 |  4 Diciembre 2019, 16:14 pm por Leguim
 |    |