Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/03/2013, 20:47
Avatar de SPAWN3000
SPAWN3000
 
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
Respuesta: Escribir binarios al final del archivo

Bueno, primero muchas gracias por responder tan rapido y aprovecho apra comentarte lo que estoy intentando desarrollaro. Es un cliente vb6 y un servidor vb.net por socket. LA comunicacion y envio de archivos desde vb6 hasta vb.net funciona genial...pero no se que sucede con enaviar archivos desde vb.net hasta vb6... inicialmente cargada todo en cadenas tipo string, pero veia que algunos caracteres especiales se transformaban en signos de pregunta(ni idea). Asi que cambia tanto vb6 y vb.net a bytes...pense que con eso todo estaria arreglado pero nada...ya intentes un seguimiento super tedioso byte por byte y comparando archivos una y ottra vez hay una similitud de casi un 80% aprox. Pero algunos caracteres y trozos de cadenas se ven muy distintos...

Comparto parte del codigo vb6. Esta es la parte que recibe la primera trama de entrada...
Código vb:
Ver original
  1. ifreefile = FreeFile
  2.             Open sFile For Binary Access Write As #ifreefile
  3.             Put #ifreefile, 1, getdatavar
  4.             Close #ifreefile

Y esta parte tambien de vb6, recibe el resto de los paquetes relacionados al archivo y los adiciona a la primera parte:
Código vb:
Ver original
  1. ifreefile = FreeFile
  2.             Open sFile For Binary Access Write As #ifreefile
  3.             Put #ifreefile, FileLen(sFile), getdatavar
  4.             Close ifreefile

............hasta hay todo lo que fue, vb6 ahora esta la parte de vb.net:
Código vb:
Ver original
  1. Dim GrabAmount As Integer
  2.         Dim typeFile As String
  3.         Dim NameFile As String
  4.         Dim sSendByteLen As String
  5.        
  6.         'Esto define el tamaño de los paquetes
  7.        GrabAmount = 5000 'Bytes
  8.        typeFile = Right(FileName, Len(FileName) - InStrRev(FileName, "."))
  9.         NameFile = Right(FileName, Len(FileName) - InStrRev(FileName, "\"))
  10.         NameFile = Mid(NameFile, 1, Len(NameFile) - (Len(typeFile) + 1))
  11.         sSendByteLen = "[¹]"    'Esto le permite identificar si es un mensaje o un archivo
  12.        Debug.Print("SNDFile_Header>>" & sSendByteLen)
  13.         client.sendData(sSendByteLen)   'Aqui se envia la cabecera de archivo
  14.        LNFile = 0
  15.  
  16.         Using sr As New FileStream(tUtil.ObjConfig(0).param & FileName, FileMode.Open, FileAccess.Read)
  17.             If GrabAmount > sr.Length Then GrabAmount = sr.Length   'Si el tamaño por defecto del buffer supera el tamaño del archivo, se cambia
  18.            Dim count As Integer = GrabAmount
  19.             Dim buffer(count - 1) As Byte
  20.             count = sr.Read(buffer, 0, count)
  21.             LNFile = 0
  22.             Do Until count = 0
  23.                 LNFile = LNFile + count
  24.                 client.sendDataB(buffer)
  25.                 If (sr.Length - LNFile) <= GrabAmount Then  'Se cambia al tamaño de los bytes restantes de ser necesario.
  26.                    count = (sr.Length - LNFile)
  27.                     ReDim buffer(count - 1)
  28.                 End If
  29.                 count = sr.Read(buffer, 0, count)
  30.             Loop
  31.             sr.Close()
  32.         End Using

Se que le hace falta pulir muchas cosas, pero primero lo primero y es que al menos funcione....pero esta ha sido la espina en el costado, sin mencionar muchas mas cosas que he tenido que superar y ya esta es mi ultima etapa y parecia ser la mas sencilla pero me esta costando y no se si sera por el agotamiendo y la falta de sueño... . Seguiere en ello pero si podes darme una luz estare completamente en deuda contigo...Se que esta mal pegar y copiar codigos esperando que alguien mas lo revise por que total se debe aprender y descubrir por si mismo las cosas que es donde esta realmente el merito, pero me vi en la necesidad de acudir al foro de ya no poder mas... Mil gracias y saludos

Última edición por SPAWN3000; 10/03/2013 a las 21:05