Problema con Substring de vbs

Cuestiones y dudas acerca de lenguajes de programación diversos.

Moderador: Moderadores

Avatar de Usuario
XeViS

Problema con Substring de vbs

Mensaje por XeViS » Jue Abr 27, 2006 9:59 am

Hola, tengo un problemilla y no lo entiendo, puede ser una tonteria, pero ya estoy tan encegado que no lo veo. Les agradeceria un empujoncito.

El caso es que estoy leiendo de un .txt y lo estoy pasando a un .xls con un ejecutable .vbs
Mire lo de Pasarlo por columnas, pero no lo encontre, asi que decidi hacerlo a mano. He aki un trozo de mi implementacion. a ver que fallo ven.

Codigo:
aux = objTXT.ReadLine
myInteger = InStr(1, aux, "|")
If myInteger <> -1 Then
objXLS_new.Cells(i, 1).value = aux.substring(1,myInteger-1)
aux.Remove 1, myInteger-1
End If


Antes de utilizar el InStr() utilizava el IndexOf() pero tambien me dava error.

El error es que cuando ejecuta la linea de substring me dice que necesita un parametro del tipo... (Atencion) lo que contiene la variable. Es decir, de lo que lee del .txt

Gracias de antemano.

Saludos.

Avatar de Usuario
ABCdatos
Administrador foro
Mensajes: 673
Registrado: Dom Mar 03, 2002 1:00 am
Contactar:

Mensaje por ABCdatos » Jue Abr 27, 2006 11:55 am

No conozco vbs, pero, por si suena la flauta... Decías:

InStr(1, aux, "|")

¿Seguro que el orden de los parámetros es correcto? En la mayoría de lenguajes de programación, lo primero es la cadena, y luego ya la posición inicial (que puede ser cero o uno según el lenguaje para la primera, normalmente queda opcional esa) y/o la cadena buscada.

Tal vez lo que te convenga realmente sea hacer un "split" (si está disponible en el lenguaje) y convertir los elementos separados por el "|" a una matriz, suponiendo que luego quieras iterar con ellos.

Saludos.
Equipo ABCdatos.
http://www.abcdatos.com/

Avatar de Usuario
Invitado

Mensaje por Invitado » Jue Abr 27, 2006 12:07 pm

Voy a mirarlo, pero el problema esta cuando saco el substring.
He comprovado si el INSTR() funciona y efectivamente da el resultado correcto.
El problema que me da substring es el siguiente:

no me voy a complicar mucho, solo es para que lo comprendais.

aux = "Dia | Hora | Minuto | Segundo"
myInteger = instr(1, aux, "|") ' me da correctamente el 5
objXLS.Cell(i, j).value = aux.substring(1, myInteger-1)

en la ultima linea me pone, cuando salta el error dice:

Error: Se requiere un objeto: 'Dia | Hora | '
Codigo: xxx
Origen: Error en tiempo de ejecución

Avatar de Usuario
XeViS

Mensaje por XeViS » Jue Abr 27, 2006 12:20 pm

Hola,

he provado lo del split() que me has comentado y va fantasticamente.
Muchas Gracias por la ayuda, ahora estoy con otros problemillas, pero voy con mas ganas.

Saludos y Gracias.

Responder