Trabajndo con ficheros

Iniciado por David Vans, 11 Abril 2007, 03:01 AM

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

David Vans

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

CeLaYa

creo que el error esta en la instucción seek

debería ser:

seek #num
FilesV(i) = Input(Parametros(1), #num)

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

Sancho.Mazorka

Celaya me decis que hacia la funcion seek que no me acuerdo  >:(


Sancho.Mazorka    :¬¬
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



DrakoX

Seek sirve para posicionarnos en una parte del fichero,

pero tambien sirve como funicon para darnos nuestra ubicacion actual.

salu2 y suerte

MazarD

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
-Learn as if you were to live forever, live as if you were to die tomorrow-

http://www.mazard.info
http://twitter.com/MazarD
irc://irc.freenode.org/elhacker.net

David Vans

Gracias de todos modos  Pero no era de la funcion seek era de cundio se escribe en      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