Página 1 de 1

Problema con stringsplit

Publicado: 23 Nov 2009, 19:03
por chechu
Hola a todos. Lo primero dar la enhorabuena pro este foro.

Lo segundo (logicamente) poner mi duda. Llevo todo el día con ello y todavía no he dado con la respuesta correcta.

Quiero recorer el archivo fichero.txt que tiene la siguiente extructura;
campo1;campo2;campo3;campo4
campo1;campo2;campo3;campo4
....
campon;campon;campon;campon


Para ello utilizo arrays con la stringsplit separando por ";" De esta manera, cada fila del fichero, es separada por este caracter...

El programa funciona. Recorre todas las líneas del fichero y dentro de cada línea todos los campos del array. El problema es q al finalizar el fichero es como si encuntrar un campo en blanco y aparece el error;

"Array variable has incorrect number of subscripts or subscript dimension range exceeded"

este es el código;

$archivo = FileOpen("fichero.txt", 0)

If $archivo = -1 Then
MsgBox(0, "Error", "El archivo con las provincias no se puede abrir.")
Exit
EndIf

While 1
$line = FileReadLine($archivo)
$lineaentera=stringsplit ($line, ";")
If @error = -1 then Exit
For $i=1 to 4
MsgBox(0, "el fichero contiene", $lineaentera[$i]) ;aqui me saca cada campo q contiene el fichero
next
Wend
FileClose($archivo)


Por favor, ¿me podéis ayudar? Es que no veo el error por ningún lado (novato q es uno)
Muchas Graciass!!

Re: Problema con stringsplit

Publicado: 23 Nov 2009, 19:52
por chechu
Bueno acabo de encontrar la respuesta. Al final como suele ocurrir era una estupidez...

Gracias a todos de todas formas
Un saludo,


$archivo = FileOpen("fichero.txt", 0)
; Revisa si el archivo está listo para abrir
If $archivo = -1 Then
MsgBox(0, "Error", "El archivo con las provincias no se puede abrir.")
Exit
EndIf

While 1
$line = FileReadLine($archivo)

If @error = -1 then Exit
$lineaentera=stringsplit ($line, ";") ; logicamente tengo que poner el stringsplit después de comprobar si hemos llegado al fin del fichero :smt021

For $i=1 to 4

MsgBox(0, "el fichero contiene", $lineaentera[$i])

next

Wend
FileClose($archivo)

Re: Problema con stringsplit

Publicado: 24 Nov 2009, 09:54
por Ximorro
Enhorabuena!
Una sugerencia, en vez de Exit usa ExitLoop, de esa manera en vez de cerrar el programa abruptamente saldrá del bucle y ejecutará el FileClose.

Re: Problema con stringsplit

Publicado: 24 Nov 2009, 13:41
por chechu
Disculpa sí, estaba puesto con ExitLoop, pero ya cambié tantas cosas q no sabía lo que hacía.

Gracias de todas formas!