Hola , os lo voy a poner facil:
Estoy haciendo un programa que lee un archivo de texto, y si detecta la cadena "Siguiente" en una linea cree un archivo de texto que contenga esa linea, actualmente hago esto:
Private Sub Form_Load()
Dim archivo As Integer
Dim linea As String
Dim x As Integer
archivo = FreeFile
Open App.Path & "\lista.txt" For Input As archivo
Do While Not EOF(archivo)
Line Input #archivo, linea
If InStr(linea, "siguiente") <> 0 Then
Open App.Path & "\" & linea & x & ".txt" For Output As #1
Print #1, "Hola"
Close #1
x = x + 1
End If
Loop
End Sub
Pero me da error me dice:
Citar
El archivo ya está abierto
Y me marca la linea:
Citar
Open App.Path & "\" & linea & x & ".txt" For Output As #1
mmmmmm
Porque?¿ :huh:
No se si entendí bien ?
Private Sub Form_Load()
Open App.Path & "\lista.txt" For Output As #1
Print #1, "L1 siguiente"
Print #1, "L2"
Print #1, "L3 siguiente"
Print #1, "L4"
Print #1, "L5"
Print #1, "L6 siguiente"
Close #1
Dim linea As String
Dim x As Integer
Open App.Path & "\lista.txt" For Input As #1
While Not EOF(1)
Line Input #1, linea
If InStr(linea, "siguiente") <> 0 Then
Open App.Path & "\" & linea & x & ".txt" For Output As #2
Print #2, "Hola"
Close #2
x = x + 1
End If
Wend
Close #1
End Sub
Hola
Dessa! :P
Siento decirte que no es eso :silbar:, el error me lo da con el code que tengo posteado... :(
Cita de: *PsYkE1* en 30 Mayo 2010, 01:34 AM
Pero me da error me dice:
Citar
El archivo ya está abierto
Y me marca la linea:
Citar
Open App.Path & "\" & linea & x & ".txt" For Output As #1
mmmmmm
Porque?¿ :huh:
Creo que lo explique bastante claro...
Salu2!
es porque el freefile del primer archivo te esta dando el mismo ID que el 1 que vos estas poniendo fijo en el segundo archivo, si lo haces con freefile, debes hacerlo con todos...sino ponele 1 al primero y 2 al segundo...pero nunca mezcles porque nunca vas a saber si te va a dar los mismos ID.
y el contador va fuera del IF.
Private Sub Form_Load()
Dim archivo As Integer
Dim archivo2 As Integer
Dim linea As String
Dim x As Integer
archivo = FreeFile
Open "C:\lista.txt" For Input As archivo
Do While Not EOF(archivo)
Line Input #archivo, linea
If InStr(linea, "siguiente") <> 0 Then
archivo2 = FreeFile
Open "C:\" & linea & x & ".txt" For Output As #archivo2
Print #archivo2, "Hola"
Close #archivo2
End If
x = x + 1
Loop
Close #archivo
End Sub
saludos.
Gracias una vez más seba123neo! ;-)
Ya sabia yo que tenia que ser una chorrada... :silbar:
Salu2!