Página 1 de 1

Problema con Substring de vbs

Publicado: Jue Abr 27, 2006 9:59 am
por XeViS
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.

Publicado: Jue Abr 27, 2006 11:55 am
por ABCdatos
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.

Publicado: Jue Abr 27, 2006 12:07 pm
por Invitado
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

Publicado: Jue Abr 27, 2006 12:20 pm
por XeViS
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.