[Ayuda] Editar archivo de texto

Iniciado por Psyke1, 30 Mayo 2010, 01:34 AM

0 Miembros y 1 Visitante están viendo este tema.

Psyke1

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:
Código (vb) [Seleccionar]
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:

Dessa

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


Adrian Desanti

Psyke1

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!

seba123neo

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.

Código (vb) [Seleccionar]
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.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Psyke1

Gracias una vez más seba123neo! ;-)
Ya sabia yo que tenia que ser una chorrada... :silbar:

Salu2!