¿Cuál es el error en esta operación? [Ayuda] [Sencillo]

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
Rhazz
Mensajes: 10
Registrado: 30 Sep 2015, 17:31

¿Cuál es el error en esta operación? [Ayuda] [Sencillo]

Mensaje por Rhazz »

Muy buenas gente, tengo un problema con una operación y no sé muy bien a qué se debe, así que paso por aquí a pedir ayuda con este detalle!
Quiero leer un archivo con muchas líneas y pasar todo su contenido a otro archivo, pero colocando tres líneas unidas del primer archivo en cada línea del segundo archivo.
Es decir, si el primer archivo tiene 300 líneas, el segundo archivo tendrá 100.

Código: Seleccionar todo

#include <File.au3>
Local $sArchivo1
$sArchivo1 = "archivo1.txt"
Local $sArchivo2
$sArchivo2 = "archivo2.txt"
Local $sTresLineasEnUna
FileOpen($sArchivo1,0)
FileOpen($sArchivo2,2)
For $i In ( _FileCountLines($sArchivo1) / 3 )
	For $a = ( ( $i - 1 ) * 3 ) + 1 ) To ( $i * 3 )
	$sTresLineasEnUna = $sTresLineasEnUna & FileReadLine($sArchivo1, $a)
	Next
FileWriteLine($sArchivo2, $sTresLineasEnUna)
Next
FileClose($sArchivo2)
FileClose($sArchivo1)
El error que muestra AutoIt es:
error: syntax error
For $a = ( ( $i - 1 ) * 3 ) + 1 )
Solo faltaba un paréntesis, pero ahora tengo otro error:

Código: Seleccionar todo

Variable must be of type "Object".:
For $i In ( _FileCountLines($sArchivo1) / 3 )
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: ¿Cuál es el error en esta operación? [Ayuda] [Sencillo]

Mensaje por BasicOs »

Hola,
Debe ser una expresión que resulta en un objeto o una matriz/array, y no un solo número, si no usa solo el for next normal y pones el número de elemento en el for....
Echa un ojo a la ayuda para ejemplos
Salu22:)
Rhazz
Mensajes: 10
Registrado: 30 Sep 2015, 17:31

Re: ¿Cuál es el error en esta operación? [Ayuda] [Sencillo]

Mensaje por Rhazz »

BasicOs escribió:Hola,
Debe ser una expresión que resulta en un objeto o una matriz/array, y no un solo número, si no usa solo el for next normal y pones el número de elemento en el for....
Echa un ojo a la ayuda para ejemplos
Salu22:)
Hola, seguí leyendo el archivo de ayuda y probando hasta conseguirlo: utilicé "For <variable> = <start> To <stop>"
Gracias
Responder