Programación General > Visual Basic 6.0 e inferiores
Leer Archivo Binario
(1/1)
martin campos quintero:
Hola amigos.
Ahora tengo otra duda :D y es que quiero copiar archivos en forma binaria porque los .exe, .com o similares solo se pueden copiar en forma binaria y quiero saber como hacerlo en visual basic. Espero me puedan proporcionar algo de código. De antemando gracias :P
Brroz:
Hola.
¿Y no podrías utilizar FileCopy en vez de complicarte la vida?
De todas formas se puede hacer abriendo origen y destino como binary y leer de un lado y escribir en otro. Resumidamente algo así:
--- Código: Text --- Public Sub Copiar(byval Origen as string, byval Destino as string) As Boolean On Error goto Err_Copiar Dim iCanalI as Integer Dim iCanalO as integer iCanalI = FreeFile Open Origen For Binary As iCanalI iCanalO = FreeFile Open Destino For Binary As iCanalO Dim byt1() As Byte Redim byt1(LOF(iCanalI)) Get iCanalI, ,byt1 Put iCanalO, ,byt1 Copiar = TrueExit_Copiar: On Error Resume Next Close iCanalI Close iCanalO Exit FunctionErr_Copiar: MsgBox Err.Description, vbcritical,"Copiar"End Function A este simple código convendría añadirle comprobación de la existencia de los archivos y si el tamaño del archivo a copiar es muy grande implementar un buffer realizando varias lecturas y escrituras... de todas formas yo no me complicaría lo más mínimo y usaría el método FileCopy.
Suerte.
martin campos quintero:
Sip, es más fácil con FileCopy, pero yo lo que quiero es leer el archivo en una PC y escribirlo en otra PC, por eso necesito pasar byte por byte con el winsock :D
fap1603:
Hola, abrelo como binario, y lo que haces es cojer byte por byte, pero lo pasas en codigo ascii, es mucho mejor y mas rapido, ademas de que te sirve con cualquier archivo. Recuerda que debes abrir en modo binario tb el fichero destino, y esribir el caraqcter ascii impreso.
Leer : byte # = 32 ---------> donde 32 es el codigo ascii del espacio.
Escribir: byte # = (espacio) ---------> donde espacio es la representacion de numero ascii (32). Suerte.
Navegación
Ir a la versión completa