Visual Basic - Acceso Binario a Archivos

Life is soft - evento anual de software empresarial
 
Vista:

Acceso Binario a Archivos

Publicado por Virtuajats (12 intervenciones) el 17/08/2005 23:23:33
Bueno tengo un problema muy complicado de depurar llevo 2 dias y no he podido hayar la causa. El problema es ke al leer un binario (C:\pkzip.exe) almacenarlo en una variable File (File As String) y despues escribirlo en otra ruta (D:\pkzip.exe) me agrega bytes extra al principio del archivo :@:@:@ .

'//////////////////////////// Este es el modulo que cree para el manejo de archivos: ////////////////////////////

Public Enum fileType
BYNARY = 0
ASCII = 1
End Enum

Function fileOpen(fileName As String, OpenType As fileType) As String
Dim data As String
Dim iniFile As Integer
iniFile = FreeFile
If OpenType = ASCII Then
Dim lineData As String
Open fileName For Input As iniFile
While Not EOF(iniFile)
Line Input #iniFile, lineData
data = data & lineData & vbCrLf
Wend
Close #iniFile
fileOpen = data
ElseIf OpenType = BYNARY Then
Dim lenOfFile As Currency
Dim buf As String * 1024
Open fileName For Binary As iniFile
lenOfFile = LOF(iniFile)
Do While Not EOF(iniFile)
DoEvents
Get #iniFile, , buf
data = data & buf
Loop
Close #iniFile
fileOpen = Left(data, lenOfFile)
End If
End Function

Sub fileSave(fileName As String, data, Optional OpenType As fileType)
Dim iniFile As Integer
iniFile = FreeFile
If IsMissing(OpenType) Then OpenType = BYNARY
If OpenType = BYNARY Then
Open fileName For Binary As iniFile
Put #iniFile, , data
Close #iniFile
Else
Open fileName For Output As iniFile
Print #iniFile, data
Close #iniFile
End If
End Sub

'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

En un form Cualquiera pongo esto para hacer la prueba:

Private Sub Form_Click()
Dim file As String
file = fileOpen("D:\pkzip.exe", BYNARY)
fileSave "C:\pkzip.exe", file
End Sub

Como entenderan al agregar bytes de esta forma a un archivo ejecutable este se daña :@:@:@:@:@!!

Ojala puedan ayudarme de antemano Muchas gracias me encanta este foro ;D
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder