Problema con stringsplit

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
chechu
Aprendiz de Mago
Mensajes: 32
Registrado: 23 Nov 2009, 18:34

Problema con stringsplit

Mensaje 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!!
chechu
Aprendiz de Mago
Mensajes: 32
Registrado: 23 Nov 2009, 18:34

Re: Problema con stringsplit

Mensaje 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)
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Problema con stringsplit

Mensaje 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.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
chechu
Aprendiz de Mago
Mensajes: 32
Registrado: 23 Nov 2009, 18:34

Re: Problema con stringsplit

Mensaje 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!
Responder