Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: David Vans en 11 Abril 2007, 03:01 am



Título: Trabajndo con ficheros
Publicado por: David Vans en 11 Abril 2007, 03:01 am
Código:
For i = 1 To UBound(VLineas) - 1
    Parametros() = Split(VLineas(i), "<*-*>")
    VerPosicion = VerPosicion + Parametros(1)
   ''''''''''
   
   Num = FreeFile
     FilesV(i) = Space(Parametros(1))
     Seek #1, VerPosicion
        FilesV(i) = Input(Parametros(1), #1)
       
        Open "C:\" & Parametros(0) For Binary As #Num
            Put #Num, , FilesV(i)
        Close #Num
       
     VerPosicion = VerPosicion + Parametros(1)
Next i
Close #1

Todo funciona correctamente pero cuando doy la segunda vulta al bucle me dice que erro 52 numero de arcvhio incorrecto epr se supone que el fichero tiene que estar cerrado porque se ha cerrado de antes.
es muy raro He porbado ponido en vez de num un #2 y un #3 la pirmera vulta me lo hace bien la segunda me dice que error como si estubiera le file abierto pero esta cerrado porque lo cierro antes de que empiece el bucle otra vez


Título: Re: Trabajndo con ficheros
Publicado por: CeLaYa en 11 Abril 2007, 22:02 pm
creo que el error esta en la instucción seek

debería ser:
Código:
 seek #num
FilesV(i) = Input(Parametros(1), #num)


Título: Re: Trabajndo con ficheros
Publicado por: Sancho.Mazorka en 11 Abril 2007, 22:14 pm
Celaya me decis que hacia la funcion seek que no me acuerdo  >:(


Sancho.Mazorka    :¬¬


Título: Re: Trabajndo con ficheros
Publicado por: DrakoX en 11 Abril 2007, 22:17 pm
Seek sirve para posicionarnos en una parte del fichero,

pero tambien sirve como funicon para darnos nuestra ubicacion actual.

salu2 y suerte


Título: Re: Trabajndo con ficheros
Publicado por: MazarD en 11 Abril 2007, 23:36 pm
Será lo que dice Celaya.
A parte unas notas de estilo, para ficheros binarios se utiliza get no input y al abrir un fichero es muy aconsejable decirle el tipo de acceso:
open tal for binary access write as #loquesea


Título: Re: Trabajndo con ficheros
Publicado por: David Vans en 12 Abril 2007, 14:31 pm
Gracias de todos modos  Pero no era de la funcion seek era de cundio se escribe en
Código:
     Open "C:\" & Parametros(0) For Binary As #Num
            Put #Num, , FilesV(i)
        Close #Num

porque Parametros(0) era = vbcrlf & "C:\fichero.exe" & vbcrlf
Entonces tuve que hacer
Parametros(0)=replace(parametros(0),vbcrlf,"")
ya funciona correctamente ese paso
Gracias