Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problema con Cadenas de Texto

Estas en el tema de Problema con Cadenas de Texto en el foro de Visual Basic clásico en Foros del Web. Tengo que resolver un problema y no estoy muy ducho con el uso de cadenas en vb6, así que a ver si me podéis ayudar. ...
  #1 (permalink)  
Antiguo 21/05/2013, 04:31
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años
Puntos: 0
Problema con Cadenas de Texto

Tengo que resolver un problema y no estoy muy ducho con el uso de cadenas en vb6, así que a ver si me podéis ayudar.

Tengo un txt (que es un índice de códigos) con el siguiente formato:

TEXTO QUE NO INTERESA.......
XXXXX-13 TEXTO QUE NO INTERESA....................................... X
TEXTO QUE NO INTERESA
TEXTO QUE NO INTERESA
XXXXX-13 TEXTO QUE NO INTERESA....................................... XX
...

Donde X son dígitos de 0 a 9. Es decir, que tengo que extraer los 5 números que van anterior a "-13" y luego el número de página que sería la "X" que va suelta, algo así:
XXXXX-13=Matriz[0][0]
X=Variable[0][1]
XXXXX-13=Matriz[1][0]
X-13=Variable[1][1]
XXXXX-13=Matriz[2][0]
X=Variable[2][1]
XXXXX-13=Matriz[3][0]
X-13=Variable[3][1]
XXXXX-13=Matriz[4][0]
X=Variable[4][1]
...

Para sacar el número de página podría ser que buscase "dos puntos" o más (".."), un espacio, y cogiese el dígito que hay después.
Y para el código que buscase un formato XXXXX-13 donde XXXXX son números.

Puede haber varías líneas de texto entre los códigos.
No sé si me he explicado con claridad...

Última edición por oskarrr; 21/05/2013 a las 04:48
  #2 (permalink)  
Antiguo 22/05/2013, 10:15
 
Fecha de Ingreso: febrero-2010
Ubicación: Guayaquil - Ecuador
Mensajes: 350
Antigüedad: 14 años, 2 meses
Puntos: 13
Respuesta: Problema con Cadenas de Texto

Saludos forero. Mira hay una funcion en vb que te ayuda con manejo de pedazos de cadenas:

mid(cadena, inicio, longitud)

Lo que te tocaria es recorrer toda la cadena letra por letra hasta que llegues a la primera "X" y almacenes hasta llegar al "-" luego continues hasta llegar a la X del final y almacenarla y asi hasta terminar con la cadena.

Espero haberte ayudado.
  #3 (permalink)  
Antiguo 22/05/2013, 12:18
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Problema con Cadenas de Texto

No uso VB, pero te serviría usar expresiones regulares, algo como /\d{5}\-13/

Saludos
__________________
Grupo Telegram Docker en Español
  #4 (permalink)  
Antiguo 26/05/2013, 05:58
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años
Puntos: 0
Respuesta: Problema con Cadenas de Texto

Si, lo estaba haciendo con Mid encadenando con if y for, y aunque salen un montón de líneas de código al ir comparando caracter por caracter funciona.
Miraré el uso de expresiones regulares que ahorraría muchas líneas de código.

Saludos!
  #5 (permalink)  
Antiguo 28/05/2013, 09:36
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Problema con Cadenas de Texto

Lee linea por linea. Utiliza instr para localizar la posicion de los "-13" y los corchetes "[" y usa esa posicion con left, mid y right para extraer lo que precede al -13 y lo que hay entre los corchetes. No creo que sea muy complicado.

Saludos

PD: Creo que me he equivocado con lo de los corchetes. Si lo que buscas es los "...." puedes usar instrrev en las lineas que encuentres el "-13" para encontrar el ultimo punto y extraer el numero que lo sigue. Es realmente simple.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 28/05/2013 a las 09:45
  #6 (permalink)  
Antiguo 28/05/2013, 11:26
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años
Puntos: 0
Respuesta: Problema con Cadenas de Texto

Si, con mid, left o right se hace sin problema. El problema es que esos códigos del tipo XXXXX-13 están dentro de muucho texto y tengo que verificar que antes del -13 vayan 5 dígitos numéricos para que por ejemplo no se confunda con una fecha (10-10-13). Por ahora lo estaba haciendo con mid, viendo si la posición anterior es >0 y <9 y así anidando if hasta cinco veces para ver si los dígitos que preceden a -13 son 5 números y el sexto dígito que lo precede es un espacio. Funciona aunque el código no este optimizado y quizás con expresiones regulares (que aún desconozco) se pueda verificar si antes del -13 van 5 dígitos numéricos y un espacio

Etiquetas: cadenas, form, vb6
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:39.