Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: Juan Luis López en Marzo 01, 2013, 08:14:29 pm

Título: Problema: Crear archivos dentro de un bucle
Publicado por: Juan Luis López en Marzo 01, 2013, 08:14:29 pm
hola a todos!
tengo un problema y me estoy volviendo loco:

tengo un archivo txt con datos de manos de poker...
el archivo tiene el siguiente fiormato:

Jugador1: pasa
Jugador2: pasa
Jugador3: sube
jugador4: se tira
Jugador1: sube
Jugador2: pasa
Jugador3: pasa
jugador4: se tira
Jugador1: sube
Jugador2: sube
Jugador3: sube
jugador4: se tira

lo que quiero hacer es que al leer el archivo y detectar el nombre del jugador se cree otro archivo con el nombre de dicho jugador...

para ello lo que hago es leer el archivo linea a linea, y despues, de cada linea guardo en una variable el nombre del jugador
a continuacion creo el archivo con el nombre de dicho jugador

Código: [Seleccionar]
Dim Linea as string
Dim numbrejugador As String
Dim libre as integer
libre = freefile
Dim libra As Integer
libra = FreeFile
   
    Open App.Path & "\Temp.txt" For Input As #libre
        While Not EOF(1)
            Line Input #libre, linea
            nombrejugador = Between(linea, "", ":")   'Esta funcion es una que retorna la cadena que hay entre otras 2 cadenas
                Open App.Path & "\" & nombrejugador & ".txt" For Append As #libra   'Aqui pongo append porque los nombres se repiten en temp.txt y no quiero que se borren los datos al crear otro archivo con output
                Close #libra
        Wend
    Close #libre

Me tira el error de que el archivo ya esta abierto...aunque lo haya cerrado con close #libra

Alguna idea?
Título: Re:Problema: Crear archivos dentro de un bucle
Publicado por: raul338 en Marzo 01, 2013, 09:35:45 pm
Pon el libra = FreeFile antes de llamar al segundo open, en el medio del bucle
Título: Re:Problema: Crear archivos dentro de un bucle
Publicado por: erbuson en Marzo 02, 2013, 12:38:10 pm
Hola, independientemente de que te vaya a funcionar con la correccion que te indica Raul, el tema es que creo debes entender el porque, aparte de que hay otro error en el código lo pual puede hacer que funcione o no, dependiendo del resto de código:

El motivo es que al hacer Libre = FreeFile y no abrir el archivo, si FreeFile te devuelve el valor #1, la siguiente instruccion probablemente te devuelve el mismo valor ya que al no haber efectuado el Open, el canal libre sigue siendo el mismo, por tanto es evidente que debes hacerlo tal como te indican.

Por otro lado el error que te comento es que tienes la sentencia While Not Eof(1) cuando deberias tener While Not Eof(Libre) ya que es lo correcto como comprenderás.

Saludos